checkApp

Stores

ITMS-90685 : CFBundleIdentifier collision

Deux bundles de l'app partagent le même identifiant.

Que signifie le rejet ITMS-90685 ?

C'est le refus d'Apple quand deux bundles de l'app partagent le même CFBundleIdentifier : en général une extension qui a reçu l'identifiant de l'app elle-même, ou un framework intégré dans l'app puis à nouveau dans une extension. Donnez à chaque extension son propre identifiant, placé sous celui de l'app, et n'intégrez chaque framework qu'une seule fois.

D'où cela vient dans une app Flutter

Chaque bundle de l'app doit avoir son propre identifiant. Les apps Flutter ajoutent des extensions pour les widgets de l'écran d'accueil, les feuilles de partage et les services de notification, et deux choses y tournent mal : une cible d'extension copiée depuis l'app garde l'identifiant de l'app, ou un framework est intégré à la fois dans l'app et dans l'extension.

Comment corriger

  1. Lancez la vérification gratuite du build sur le .ipa. Elle nomme l'identifiant et les deux bundles qui le portent.
  2. Donnez à chaque extension un identifiant placé sous celui de l'app, par exemple com.example.app.widget.
  3. Dans Xcode, dans les réglages Frameworks de la cible d'extension, passez les frameworks partagés sur « Do Not Embed », pour qu'ils ne soient intégrés que dans l'app.
  4. Recompilez et envoyez de nouveau le build.

La vérification gratuite du build lit votre .ipa dans le navigateur et nomme la cause de ce rejet et des autres, sans rien envoyer.

Ou faites vérifier le build entier : l'audit de conformité aux stores coûte 190 €, en 2 jours ouvrés.

Tous les codes de rejet