web-dev-qa-db-fra.com

La chaîne de droit d'identificateur d'application de la mise à niveau ne correspond pas à l'application installée -> rejet de la mise à niveau

J'ai une application iOS qui a maintenant environ 3 ans. Il est signé avec un profil d'entreprise. Nous avons publié sept versions du logiciel, la dernière fois il y a presque un an. Nous essayons actuellement de créer une nouvelle version mais nous avons constaté qu'en raison des nouvelles règles de sécurité d'iOS8, les appareils iOS 8.1.3 et plus ne peuvent pas être mis à niveau et doivent être supprimés et réinstallés.

En faisant des recherches, j'ai trouvé des problèmes similaires pour les personnes qui signent l'application avec un profil différent, mais notre application est en cours de signature avec le même profil. L'erreur prétend que notre ancien identifiant d'application contenait un caractère générique, ce que je ne peux pas comprendre car nous n'avons jamais changé l'identifiant du bundle (mais, dans le portail des développeurs, notre appId général pour toutes nos applications est com.company. *).

J'ai constaté que si je construisais la version 1 et la version 2 de l'application avec Xcode 6.4, je pouvais mettre à niveau avec succès et si je construisais les deux versions de l'application avec Xcode 5.1, je pouvais mettre à niveau avec succès, le problème est lorsque je tente d'installer l'application construite avec Xcode 6.4 sur une version construite avec Xcode 5.1

L'erreur que nous obtenons lorsque nous tentons la mise à niveau est la suivante:

"La chaîne d'autorisation de l'identificateur d'application (6Q39SSX4QT.com.company.appName) de la mise à niveau ne correspond pas à la chaîne d'identificateur d'application de l'application installée (6Q39SSX4QT.com.company. *)"

J'ai déjà vu certaines références à la nécessité d'inclure un fichierautlements.plist dans notre application. Nous avons un fichier plist AppName.entitlements, mais aucune de nos applications n'a un fichierautlements.plist (et nos autres applications ne présentent pas ce problème ont été mis à niveau plusieurs fois depuis la sortie de Xcode 5.1).

Quelqu'un a des idées?

Merci!

12
drew2dev
  1. Ouvrez Xcode -> Fenêtre -> Périphériques
  2. Cliquez sur votre appareil et supprimez l'application que vous essayez d'installer de la liste des applications installées.
  3. Essayez de courir maintenant.
17
UIResponder

Après quelques lectures supplémentaires, j’ai trouvé cette réponse utile. Dans mon cas, je construis via un script grunt afin que je puisse modifier mon étape archive/sign/package pour insérer les droits lors de l'étape de codeign. 

Si vous suivez les étapes que j'ai liées, vous voudrez vous assurer que votre fichierautlements.plist contient le caractère générique, comme indiqué ci-dessous:

<key>application-identifier</key>
<string>com.company.*</string>

Si vous créez manuellement le packaging de l'application, vous voudrez peut-être consulter iResign . Cela créera le fichierautlements.plist pour vous et l'injectera lors de la signature de votre application.

J'aimerais que la documentation fournie par Apple soit meilleure. Je ne peux pas obtenir le même effet dans XCode, quoi que je spécifie dans les paramètres Droits de code de ma cible.

1
zcMACK

Je viens d'avoir cette erreur - c'est parce que j'avais changé l'équipe de développement qui avait l'habitude de signer l'application. C'est-à-dire que j'ai utilisé le profil de distribution de notre société pour signer la version de développement et le profil de distribution du client pour signer une version.

Vérifiez que l'ID de l'équipe dans les droits est l'ID de l'équipe correct (imprimé dans le message d'erreur) -> puis c'est l'application installée qui est incorrecte. Vérifiez également que vous n'avez pas spécifié d'identificateur d'application dans un fichier de droits. Je n'avais pas de fichier de droits du tout.

Dans ce cas, supprimez simplement l'application sur l'appareil et réinstallez-la.

Chris

0
chrisoneiota