ITMS-90685: CFBundleIdentifier collision
Два бандли в застосунку з однаковим ідентифікатором.
Що таке ITMS-90685?
Відмова Apple, коли два бандли в застосунку мають однаковий CFBundleIdentifier: зазвичай розширення з ідентифікатором самого застосунку або фреймворк, вбудований у застосунок і ще раз у розширення. Дайте кожному розширенню власний ідентифікатор під ідентифікатором застосунку і вбудовуйте кожен фреймворк один раз.
Звідки це береться у Flutter-застосунку
Кожен бандл у застосунку потребує власного ідентифікатора. Flutter-застосунки додають розширення для віджетів на домашньому екрані, меню «Поділитися» і notification service, і тут трапляються дві речі: target розширення, скопійований із застосунку, зберігає його ідентифікатор, або фреймворк вбудовано і в застосунок, і ще раз у розширення.
Як виправити
- Запустіть безкоштовну перевірку білда на .ipa. Вона назве ідентифікатор і обидва бандли, що його мають.
- Дайте кожному розширенню ідентифікатор під ідентифікатором застосунку, наприклад
com.example.app.widget. - У Xcode в налаштуваннях Frameworks для target розширення виставте спільним фреймворкам Do Not Embed, щоб вони вбудовувались лише в застосунок.
- Зберіть і завантажте знову.
Безкоштовна перевірка білда читає ваш .ipa в браузері й називає причину цієї та інших відмов, нічого не завантажуючи.
Або доручіть перевірити весь білд: аудит готовності до сторів — 190 €, 2 робочі дні.