web-dev-qa-db-fra.com

L'extension iOS8 a besoin de son propre profil d'approvisionnement?

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.

  1. Ai-je besoin d'un profil d'approvisionnement séparé pour l'application principale et l'extension?
  2. Doivent-ils partager un identifiant de bundle (par défaut, il ajoute le nom d'extension à l'identifiant de bundle, donc peut-être pas)?
  3. S'il a un identifiant de bundle séparé, comment cela se reflète-t-il dans le profil d'approvisionnement (s'il en existe un autre)?
42
Neil Coxhead

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.

25
Oxcug

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.

10
Daniel Storm

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.

8
honcheng

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.

enter image description here

5
Vaibhav Saran

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:

  1. J'ai créé un ID générique pour chaque extension de notification, mais le préfixe de cet ID de bundle générique doit correspondre à l'ID de bundle de votre application comme préfixé. Si ce n'est pas comme ça, cette erreur apparaîtra: "L'identifiant de bundle du binaire incorporé n'est pas préfixé avec l'identifiant de bundle de l'application parent". Ainsi, si l'ID de l'ensemble de votre application est: "com.companyName.appName", l'ID de l'ensemble générique pour votre extension doit être "com.companyName.appName. *" =. Vous pouvez ensuite remplacer * par une extension de notification spécifique dans le XCode. Remarque Apple n'autorise qu'un seul point (".") Après l'ID de bundle de l'application pour nommer l'ID de bundle de votre extension.
  2. La version et le numéro de build de votre extension doivent correspondre à ceux de votre application.
  3. Une fois l'appli créée, créez un profil d'approvisionnement de distribution avec celui-ci et utilisez-le dans XCode.
0
nr5