web-dev-qa-db-fra.com

Xcode 8.0 Gérer automatiquement le comportement de signature

J'utilisais l'option Gérer automatiquement la signature depuis un certain temps. Pourtant, lorsque je le fais dans la version récente de Xcode 8.0, cela m'oblige à utiliser l'identité de signature de code du développeur même pour la publication et la distribution dans les paramètres de construction, ce qui est assez étrange en soi. Et lorsque je soumets le binaire relatif, je reçois le redoutable e-mail d'Autorisation de notification de notification manquante d'Apple. Pour compenser cela, j'ai désactivé l'option automatique et je suis revenu en spécifiant manuellement les profils, ce qui m'a permis de conserver le profil de distribution dans le paramètre de création de distribution et de m'enregistrer l'e-mail d'avertissement d'Apple.

Pourquoi la gestion automatique fonctionne de cette façon et que faire pour ajuster son comportement?

19

Avec la sortie de Xcode 8, Apple a introduit une nouvelle façon de gérer la configuration de la signature. Vous avez maintenant deux options Manual et Automatic.

Ce nouveau Automatic Signing ne fonctionne pas de la même manière que dans les versions précédentes de Xcode. Auparavant, lorsque vous définissiez Automatic profils d'approvisionnement, Xcode utilisait le premier profil d'approvisionnement et certificat sur votre ordinateur qui correspond aux droits et à l'identifiant de bundle que vous tentiez d'utiliser.

Dans Xcode 8, Automatic Signing va gérer les profils, les droits et les certificats pour vous, mais uniquement pour Development. Si vous sélectionnez automatique, vous êtes obligé d'utiliser Development signing et les profils d'approvisionnement créés par Xcode.

Sur le WWDC 2016 (Session 401 - Quoi de neuf dans la signature d'application Xcode) ils expliquent cette nouvelle méthode de signature et décrivent quelques "Meilleures pratiques". Lorsque vous créez pour la distribution et utilisez Automatic Signing ou Manual vous devez archiver pour Development puis exporter (depuis l'organiseur ou les outils de ligne de commande xcodebuild -exportArchive) comme Distribution. L'organisateur va signer à nouveau votre application pour Distribution même si elle a été archivée pour Development.

L'autre problème que vous décrivez, "Droit de notification push manquant" est dû au fait que Xcode 8 a changé la façon dont il applique les droits. Avec les versions précédentes de Xcode, vous n'aviez pas à ajouter explicitement le APS Environment droit, il suffisait que votre profil de provisionnement ait ce droit. Assurez-vous que vous disposez du Push Notification capacité activée dans l'onglet Capabilities et vérifiez qu'il n'y a pas d'erreur.

(Modifier: ce nouveau comportement est intentionnel et décrit dans les notes de publication de Xcode 8: https://developer.Apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html#//Apple_ref/doc/uid/TP40001051-CH1-DontLinkElementID_44 )

Xcode 8 ne copie pas automatiquement le droit d'environnement aps des profils d'approvisionnement au moment de la génération. Ce comportement est intentionnel. Pour utiliser ce droit, activez les notifications push dans le volet Capacités de l'éditeur de projet ou ajoutez manuellement le droit à votre fichier de droits. (28076333)

51
pablobart