Je démarre une extension iOS 8 mais je ne peux pas l'exécuter sur mon appareil. L'erreur en essayant de l'exécuter est:
Aucun profil d'approvisionnement correspondant trouvé
Le profil d'approvisionnement spécifié dans vos paramètres de génération ("ExtensionName") a un AppID de net.company.AppName
qui ne correspond pas à votre identifiant de lot net.company.AppName.ExtensionName
. Xcode peut résoudre ce problème en téléchargeant un nouveau profil d'approvisionnement à partir du Centre des membres.
Il semblerait que Xcode le préfère de cette façon, mais rien ne vous empêche d'utiliser un profil générique jusqu'à ce que vous vouliez faire un Adhoc ou une version sur l'App Store. Plus au point de votre question cependant, pour chaque cible que vous avez, vous avez besoin d'un profil et d'un ID de bundle. Alors oui, vous "avez besoin" d'un autre profil d'approvisionnement pour votre extension, bien que je m'attende à Apple pour rationaliser ce processus.
Dans l'ensemble, il est probablement préférable d'utiliser simplement un profil de développement WildCard jusqu'à ce que vous ayez besoin d'un profil d'approvisionnement. N'oubliez pas que tout cela est une version bêta, et ils travaillent toujours à peu près tout.
J'ai localisé cette documentation relative à Extensions d'application . Si vous lisez le bas de la page 20, il semble que l'utilisation du même certificat de distribution soit réellement suggérée. Je suis allé de l'avant et j'ai changé l'identifiant de mon bundle pour l'extension Today afin d'étendre mes applications. Par exemple, com.DeveloperName.AppName.TodayExtension
, a créé un ID d'application dans le Dev Center pour correspondre à cela, et a créé un profil de distribution pour cela. Mon application + Quotes a été mise à jour avec succès en suivant ces étapes. Je n'ai rencontré aucun problème avec l'application ou l'extension, mais Xcode semble un peu confus lorsque j'essaie d'attribuer automatiquement les profils d'approvisionnement appropriés pour mon extension maintenant. Les sélectionner manuellement résout ce problème.
Les extensions sont des cibles distinctes de l'application hôte. Vous devez les traiter comme s'il s'agissait d'applications distinctes avec des identifiants de bundle différents et des profils d'approvisionnement différents.
Il est préférable de les créer pendant les tests plutôt que d'utiliser des caractères génériques, car vous devrez peut-être tester certaines fonctionnalités que vous avez activées, par exemple le groupe d'applications pour que votre extension et votre application hôte puissent accéder au même conteneur.
Notez que si vous souhaitez activer des fonctionnalités pour votre application hôte et ses extensions, vous devez les activer individuellement pour chacune d'entre elles.
Vous avez besoin d'un profil d'approvisionnement distinct pour votre extension, mais avec le même certificat que votre application principale. Lorsque vous créez un nouveau profil d'approvisionnement, l'ID d'application de votre extension apparaîtra également dans la liste, choisissez-le et continuez de créer un nouveau profil d'approvisionnement.
Choisissez également ce profil d'approvisionnement dans la cible de votre extension.
J'utilise simplement "Gérer automatiquement la connexion" jusqu'à ce que je doive pousser vers l'App Store. Cela fonctionne hors de la boîte avec des simulateurs, n'a pas encore essayé avec des appareils.
Peu de pointeurs pour Appstore Build: