Configuration:
Mac OS X 10.8 + Xcode 4.4
Ma Solution Simple:
- Réémettez votre profil de provisionnement ad hoc après avoir configuré les notifications push pour votre identifiant d'application et les importer dans Xcode.
- Jetez un œil dans votre dossier .xcodeproj (clic droit -> Afficher le contenu du paquet) et supprimez le dossier
xcuserdata
.
- C'est tout ;)
Quelques indices sur ce problème:
Après avoir activé les notifications Push pour mon application, je n'ai soudainement plus pu créer de fichiers ad hoc. J'ai rencontré des erreurs dans le log de la Console sur mon iPhone en essayant d'installer mon application comme celles-ci:
Avr 1 20:56:10 inconnu installd[384] : l'autorisation 'keychain-access-groups' a une valeur non autorisée par un profil de provisionnement
Avr 1 20:56:10 inconnu installd[384] : l'autorisation 'get-task-allow' a une valeur non autorisée par un profil de provisionnement
Avr 1 20:56:10 inconnu installd[384] : l'autorisation 'application-identifier' a une valeur non autorisée par un profil de provisionnement
Avr 1 20:56:10 inconnu installd[384] : 2ff66000 verify_signer_identity: Impossible de copier la signature validée : -402620394
Avr 1 20:56:11 inconnu installd[384] : 2ff66000 preflight_application_install: Impossible de vérifier l'exécutable à /var/tmp/install_staging.44jV0O/foo_extracted/Payload/PersonalTrainer-Tester-iPhone.app
Avr 1 20:56:11 inconnu com.apple.itunesstored[392] : MobileInstallationInstall: échec avec -1
Avr 1 20:56:11 inconnu installd[384] : 2ff66000 install_application: Impossible de préparer l'installation de l'application
Avr 1 20:56:11 inconnu installd[384] : 2ff66000 handle_install: Échec de l'API
Avr 1 20:56:11 inconnu installd[384] : 2ff66000 send_message: Impossible d'envoyer un message Mach de 71 octets : 10000003
Avr 1 20:56:11 inconnu installd[384] : 2ff66000 send_error: Impossible d'envoyer une réponse d'erreur au client
Il y a une note technique qui recommande d'utiliser codesign -d --entitlements - .app
pour vérifier si votre application est correctement signée pour les notifications push d'Apple. Dans le cas où la sortie de la commande codesign n'a pas un environnement aps défini sur production ou développement, il y a quelque chose qui cloche!
Jusqu'à présent, mes applications signées avec un profil de provisionnement adhoc ont toujours un embedded.mobileprovision
à l'intérieur du dossier .app
avec une partie spécifique, tel que:
Entitlements
application-identifier
ABCDEFGH.com.myappname.tester
aps-environment
production
get-task-allow
keychain-access-groups
ABCDEFGH.*
Après avoir utilisé codesign, j'ai réalisé que le binaire réel dans .app
avait aussi un XML inclus, qui disait quelque chose de très différent que mon fichier embedded.mobileprovision
:
application-identifier
ABCDEFGH.com.myappname.tester
get-task-allow
keychain-access-groups
ABCDEFGH.com.myappname.tester
Je suppose que cela est la cause du message d'erreur que nous rencontrons tous. (bien que cette erreur puisse avoir différentes origines comme le suggèrent d'autres posts sur stackoverflow également)
L'exécutable a été signé avec des autorisations invalides.
Les autorisations spécifiées dans le fichier Entitlements de signature de code de votre application
ne correspondent pas à celles spécifiées dans votre profil de provisionnement. (0xE8008016).
Je pense qu'il y a un bug dans Xcode qui garde les réglages de votre fichier plist sans être mis à jour dans vos schémas ce qui fait que votre application est finalement signée avec le mauvais profil de provisionnement. Donc en supprimant le dossier xcuserdata, vous supprimez tous les schémas. Par conséquent, Xcode les recréera la prochaine fois avec les paramètres corrects et vous serez à nouveau heureux.
4 votes
En fouillant un peu plus, j'ai trouvé la RÉPONSE à la deuxième question... Apple devrait inclure la paire "aps-environment" dans le fichier mobileprovision, la valeur devrait être "development" ou "distribution". Il y a apparemment un bug où cette paire est parfois omise lors de la génération du certificat. Vérifiez en ouvrant le fichier dans un éditeur de texte.
0 votes
Et il semble que l'identificateur de bundle de l'application soit sensible à la casse (champ Indentifier dans le volet Propriétés de la fenêtre Info de la cible)
68 votes
CE PROBLÈME ME DONNE ENVIE DE PLEURER