ITMS-90685: CFBundleIdentifier collision
Zwei Bundles in der App mit derselben Kennung.
Was ist ITMS-90685?
Apples Ablehnung, wenn zwei Bundles in der App denselben CFBundleIdentifier haben: meist eine Erweiterung mit der Kennung der App selbst oder ein Framework, das in der App und noch einmal in einer Erweiterung eingebettet ist. Geben Sie jeder Erweiterung eine eigene Kennung unter der der App und betten Sie jedes Framework nur einmal ein.
Woher das in einer Flutter-App kommt
Jedes Bundle in der App braucht eine eigene Kennung. Flutter-Apps ergänzen Erweiterungen für Home-Screen-Widgets, Teilen-Menüs und Notification Services, und dabei geht zweierlei schief: Ein aus der App kopiertes Erweiterungs-Target behält die Kennung der App, oder ein Framework wird in der App und noch einmal in der Erweiterung eingebettet.
So beheben Sie es
- Führen Sie die kostenlose Build-Prüfung mit der .ipa aus. Sie nennt die Kennung und beide Bundles, die sie tragen.
- Geben Sie jeder Erweiterung eine Kennung unter der der App, etwa
com.example.app.widget. - Stellen Sie in Xcode in den Framework-Einstellungen des Erweiterungs-Targets gemeinsam genutzte Frameworks auf Do Not Embed, damit sie nur in der App eingebettet sind.
- Bauen Sie neu und laden Sie erneut hoch.
Die kostenlose Build-Prüfung liest Ihre .ipa im Browser und nennt die Ursache dieser und der anderen Ablehnungen, ohne etwas hochzuladen.
Oder lassen Sie den ganzen Build prüfen: Die Store-Prüfung kostet 190 €, 2 Arbeitstage.