web-dev-qa-db-fra.com

Xcode 6 - Comment choisir un certificat de signature / profil d'approvisionnement pour la distribution ad hoc?

Pour distribuer l'application à nos testeurs, nous utilisons Xcode, à l'aide du processus suivant:

  • Application d'archive
  • Distribuer pour Ad-Hoc
  • Choisir le profil d'approvisionnement
  • Enregistrez le .ipa dans un dossier

Mais avec Xcode 6, ce flux de travail a été légèrement modifié. Je peux toujours sélectionner l'option de distribution Ad-Hoc, mais je ne peux pas sélectionner le profil d'approvisionnement souhaité. Cela ne nous donne aucun contrôle sur le certificat de signature utilisé ni sur la configuration du profil d'approvisionnement (nous utilisons les notifications Push).

Par défaut, iPhone distribution identité de signature est utilisée et un type de profil d'approvisionnement XC Ad Hoc est généré. Vous pouvez le voir sur l'image ci-dessous:Exporting IPA Si vous cliquez sur la flèche près du profil de provisioning, le dossier contenant les profils de provisioning s'ouvre.

Donc ma question est:

Existe-t-il un moyen dans Xcode 6 de sélectionner le profil d'approvisionnement utilisé avec la distribution ad hoc?

Merci!

143
Legoless

J'étais confronté au même problème, résolu à l'aide du script de l'outil "xcodebuild" en ligne de commande, qui est préinstallé avec XCode6 (il n'était pas nécessaire de réinstaller XCode5).

http://www.thecave.com/2014/09/16/using-xcodebuild-to-export-a-ipa-from-an-archive/

Script en terminal:

xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile 'Provisioning Profile Name'
52
Aqib Mumtaz

J'ai eu un problème similaire lors de la soumission à l'App Store. J'ai créé une archive, puis cliqué sur "Soumettre" et Xcode souhaitait signer automatiquement avec le profil d'approvisionnement par défaut "XC com. *" À la place du profil explicite qu'il possédait déjà.

Pour résoudre ce problème, je viens de recréer le profil sur le portail de développeur Apple:

1) Accédez à developer.Apple.com et trouvez le profil d'approvisionnement de distribution que vous souhaitez utiliser.
2) Sélectionnez-le, cliquez sur "Modifier", renommez le profil et cliquez sur "Générer".
3) Téléchargez le profil d'approvisionnement sur le bureau et faites-le glisser sur l'icône Xcode 6.
4) Redémarrez Xcode 6.
5) Ouvrez la fenêtre de l'organiseur et cliquez sur "Soumettre" dans l'archive que vous avez construite. Xcode choisira automatiquement votre profil explicite au lieu du profil générique.

31
GingerBreadMane

Une fois dans l’organisateur

  • Sélectionnez la construction ad hoc et cliquez sur "Exporter ...."
  • Sélectionnez "Enregistrer pour le déploiement ad hoc" -> Suivant.
  • Au lieu de sélectionner une organisation dans le menu déroulant, sélectionnez "Utiliser un actif de signature local" -> Choisir
  • Exportez et enregistrez .ipa comme auparavant.

Bien entendu, vous devez avoir généré, téléchargé et installé le profil de provisioning ad hoc.

27
MrPatol

Il semble que le dernier profil d'approvisionnement généré gagne pour le moment. Ainsi, vous pouvez simplement générer à nouveau le profil que vous souhaitez et le télécharger. Xcode l'utilisera.

Une approche légèrement meilleure: définissez le profil prov souhaité dans votre cible et utilisez la ligne de commande pour créer votre ipa, cela fonctionne également.

Voici le script que j'utilise:

#!/bin/sh

# Current as working as of 2014/09/22
# Xcode 6

OUTPUTDIR="$HOME/build"
APPNAME="your-app"
SCHEME="your-app"
APP_WORKSPACE="$HOME/Path/To/your-app.xcworkspace"

rm "$OUTPUTDIR/$APPNAME.ipa" #deletes previous ipa
xcodebuild -workspace "$APP_WORKSPACE" -scheme "$SCHEME" archive -archivePath "$OUTPUTDIR/$APPNAME.xcarchive"
xcodebuild -exportArchive -exportFormat ipa -archivePath "$OUTPUTDIR/$APPNAME.xcarchive" -exportPath "$OUTPUTDIR/$APPNAME.ipa" 

et mes réglages:

Xcode settings

17
Thorsten

Dans Xcode 6 (au moins 6.1 que j'utilise maintenant) lorsque vous effectuez l'exportation pour ad hoc, xcode 6 analyse automatiquement s'il existe un profil d'approvisionnement contenant tous les périphériques enregistrés dans le compte de développeur et qui correspond en même temps à l'ID de l'ensemble. . Si non, il utilisera le profil de provision XC. Par conséquent, si vous souhaitez utiliser votre propre profil, par exemple, aux fins de la notification Push, vous devez sélectionner tous les périphériques de votre profil sur le portail de développeurs Apple. J'imagine que c'est la raison pour laquelle certaines personnes recréer un profil fonctionneraient et d'autres non.

d'ailleurs, script d'utilisation peut exporter et télécharger vers testflight, mais l'appareil ne peut tout simplement pas le télécharger. probablement quelque part je me suis trompé. si quelqu'un sait pourquoi, merci de me le faire savoir. tks

8
AlexHsieh

Je ne pouvais pas comprendre cela non plus. J'en ai eu marre lors de la soumission à l'AppStore, où le profil par défaut était générique.

J'ai fini par construire Xcode 6, puis de revenir à la fenêtre Organiseur de Xcode 5 pour la soumission. Ainsi, vous serez invité à choisir un profil avec lequel signer.

8

Cela a fonctionné pour moi:

  1. cliquez sur "Afficher les comptes .." dans la boîte de dialogue "..sélectionner une équipe de développement ..".
  2. cliquez sur "Afficher les détails" et recherchez le profil de configuration XC Ad Hoc.
  3. faites un clic droit sur ce profil et choisissez "Afficher dans le Finder".
  4. supprimer le profil sélectionné.
  5. retournez à la boîte de dialogue à l'étape 1.
  6. cliquez sur "Choisir".
  7. cliquez sur la flèche près du profil de provisionnement pour ouvrir le répertoire des profils de provisionnement.
  8. supprimez à nouveau le profil générique comme à l'étape 4.
  9. cliquez sur le bouton "Précédent" dans la boîte de dialogue "Envoyer le [nom de l'application] à Apple:".
  10. sélectionnez à nouveau "Enregistrer pour le déploiement ad hoc"
  11. cliquez à nouveau sur le bouton "Choisir".

Vous devriez maintenant voir le nom du profil d'approvisionnement approprié.

7
user3382891

J'ai une solution de contournement pour cela qui fonctionne pour moi.

J'ai Xcode 6 et Xcode 5.1.1 installés, Xcode 6 est dans Applications et Xcode 5.1.1 est dans un autre répertoire. Quand je veux faire une construction, j'utilise Xcode 6 pour créer l'archive. Mais vous pouvez également voir l'archive créée dans Xcode 5.1.1. J'utilise donc Xcode 5.1.1 pour distribuer le fichier .ipa ad hoc à l'aide du profil d'approvisionnement que je souhaite utiliser. Donc construisez en utilisant Xcode 6 mais distribuez en utilisant Xcode 5.1.1.

6
Adam Freeman

L’utilisation d’actifs de signature locaux lors de l’exportation a résolu le problème pour moi: enter image description here

4
Durga Vundavalli

La réponse de @MrPatol n'a pas fonctionné pour moi. Mon scénario de travail pour Xcode 6.3.2

Dans le centre des membres -> Profils de provisioning iOS

  • Supprimez le profil de provisioning défini par défaut lorsque vous tentiez de créer l'application (par exemple, "XC ..."). Créez un profil d'approvisionnement ad hoc (pas de production) avec un nom abrégé.

Dans l'utilitaire de configuration iPhone -> Profils de provisioning

  • Supprimer le même profil d'approvisionnement (par exemple, "XC ...")

In Xcode -> Organizer

  • Sélectionnez la construction ad-hoc et cliquez sur "Exporter ...." Sélectionnez "Enregistrer pour le déploiement ad hoc" -> Suivant
  • Sélectionnez une organisation dans le menu déroulant
  • Vérifiez que votre nouveau profil d'approvisionnement ad-hoc est sélectionné automatiquement
  • Exportez et enregistrez .ipa comme auparavant.
3
Serge Seletskyy

Voici les deux points clés qui ont résolu le problème pour moi.

  • Lorsque vous générez le profil d'approvisionnement, il doit être lié à un ID d'application explicite qui utilise le même identificateur de groupe que votre application. Un identifiant d'application générique ne fonctionnera pas.
  • Lorsque vous exportez l'application pour un déploiement ad hoc, sélectionnez tiliser un actif de signature local dans la liste déroulante, puis cliquez sur Choisir.

Xcode trouvera ensuite le profil de provisionnement correct en faisant correspondre l'identifiant de l'application avec l'identifiant de l'ensemble de l'application.

2
Sarah Elan

En fait, vous devez créer un nouveau profil de distribution, spécifique au déploiement ad hoc. Cela se trouve dans le centre des membres classique, mais il s’agit d’un nouveau type de certificat.

Vous pouvez ensuite sélectionner les appareils à utiliser pour tester l’application comme vous le feriez avec un profil de développeur.

Et le certificat nouvellement créé sera disponible lorsque vous exporterez votre package à partir de l'Organiseur de la manière habituelle.

Vous pouvez également utiliser la solution TestFlight fournie par Apple avec iOS 8 pour permettre à votre utilisateur d’avoir accès à la version préliminaire.

enter image description here

1
cdescours

J'ai eu le même problème. Finalement, je l'ai résolu en régénérant le profil que je souhaitais utiliser dans Xcode 6, y compris tous les périphériques que j'ai enregistrés sur mon compte iOS Dev. peut effectuer l’exportation ad hoc avec Xcode 6 sans utiliser de script. J'espère que ça aide.

1
diegomen
  1. Je pense que c’est un bon moyen de spécifier une option -exportOptionsPlist après Xcode 7. Cela permet de choisir les fichiers de provision appropriés, comme lors de l’exportation d’interface graphique, quel que soit le paramètre que vous spécifiez.

xcodebuild -exportArchive -archivePath $ Archive_Path -exportPath $ LOCAL_PACKAGE_DIR -exportOptionsPlist $ Export_Plist_Path

le fichier optionPlist est comme ça,

_<dict>
  <key>teamID</key>
        <string>MYTEAMID123</string>
        <key> teamID </key>
        <string>app-store</string>
        <key>uploadSymbols</key>
        <true/>
</dict>


<plist>
_

app-store, entreprise, ad-hoc, développement alternatif

  1. Mais vous pouvez rencontrer une autre erreur après ci-dessus.

Error Domain = IDEDistributionErrorDomain Code = 14 "Aucun périphérique applicable n'a été trouvé." UserInfo = {NSLocalizedDescription = Aucun périphérique applicable trouvé.}

C'est un problème de Ruby. Essayez ce script shell, xcbuild-safe.sh

_xcbuild-safe.sh xxxxNormalOptionsInXcodebuild bla...
_
  1. Attendez un moment, une autre erreur étrange vient.

xcbuild-safe.sh: ligne 62: Shell_session_update: commande introuvable

C'est quoi l'enfer _Shell_session_update_? Laissez-nous travailler autour de cela. Définissez simplement une fonction avant la vraie commande xcodebuild, à savoir la ligne 60 ou 61.

_function Shell_session_update() { :; }
_
0
Victor Choy

Cela fait un moment que je suis coincé avec ceci , mais en utilisant Crashlytics résolu, construire distribué en utilisant le profil sélectionné dans les paramètres de construction de votre projet Xcode.

j'espère que ça aide quelqu'un.

0
M.Othman

Presque le même problème. Après avoir créé une archive à distribuer (Produit> Archive), vous exportez l'archive (cliquez sur Exporter ...) et choisissez "Enregistrer pour le déploiement en entreprise". Ensuite". Vous sélectionnez ensuite la valeur par défaut "Équipe de développement" (par exemple, le nom de l'organisation) et cliquez sur "Choisir". Enfin, une vue récapitulative vous sera présentée, qui répertorie également le profil de provisioning que Xcode a automatiquement trouvé (peut-être créé à la volée) pour vous. Ceci PEUT être un profil de provisioning incorrect (généralement un profil de provision générique, comme "XC: *") et peut-être se produisant, car il existe déjà un profil de provisioning de générique sur le portail des développeurs. Le profil d'approvisionnement en caractères génériques PEUT être utilisé par d'autres projets plus anciens et il n'est peut-être pas judicieux de supprimer simplement le profil d'approvisionnement en éléments génériques du portail des développeurs.

J'ai utilisé un ticket d'assistance pour cela et je n'ai récupéré que ce lien https://developer.Apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//Apple_ref/doc/uid/TP40012582-CH32-SW1 . Pas vraiment une grande aide.

J'ai trouvé que la solution de MrPatol fonctionne également pour le déploiement en entreprise bien et résout le problème pour nous. J'ai d'abord ouvert une session sur le portail des développeurs et créé manuellement un profil de provisionnement adapté à mon application. Ensuite, téléchargez et installez le nouveau profil de provisioning créé manuellement.

0
sejersbol

Dans xcode 7, je ne pouvais pas choisir le provisioning ad hoc via

Organiseur -> Transférer vers l'App Store & Organizer -> Valider

Mais je pourrais choisir via Organizer -> Export

Edité:

Le téléchargement de l'application après l'exportation pour adhoc vers App Store pour TestFlight a entraîné un autre problème discuté ici . Donc, la solution à ces deux problèmes en est un. Créez un provisioning AppStore pour pouvoir le sélectionner via l'organisateur et utiliser testFlight en le téléchargeant sur un magasin d'applications.

0
zeeawan