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

pour distribuer l'application à nos testeurs, nous utilisons Xcode, ce que nous faisons en utilisant le processus suivant:

  • de l'Archive de l'application
  • distribuer pour Ad-Hoc
  • choisir le profil d'approvisionnement
  • Enregistrer la .ipa à un dossier

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

par défaut iPhone distribution l'identité de signature est utilisée et une sorte de profil de provision XC Ad Hoc est généré, qui peut être vu sur l'image ci-dessous: Exporting IPA Si vous cliquez sur la flèche près du profil de provisionnement, il ouvre le dossier avec les profils de provisionnement.

donc ma question Est:

Existe-t-il un moyen dans Xcode 6 de sélectionner le profil de provisionnement utilisé avec la distribution Ad Hoc?

Merci!

143
demandé sur Legoless 2014-07-31 14:05:34

18 réponses

j'étais confronté au même problème, résolu en utilisant le script d'outil en ligne de commande" xcodebuild", qui est préinstallé avec XCode6 (Je n'avais pas besoin de ré-installer XCode5).

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

Script dans le terminal:

xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile 'Provisioning Profile Name'
52
répondu Aqib Mumtaz 2015-04-08 14:11:52

j'ai eu un problème similaire lors de la soumission à L'App Store. J'ai créé une archive, puis j'ai cliqué sur "Soumettre" et Xcode voulait automatiquement signer avec le "XC com par défaut.*" générique profil de configuration à la place de l'explicite profil que avait déjà.

pour corriger cela, je viens de recréer le profil sur le Portail des développeurs Apple:

1) passer à developer.apple.com et trouver le profil de provision de distribution que vous voulez 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émarrer Xcode 6.

5) Ouvrez la fenêtre organisateur et cliquez sur "Soumettre" sur l'archive que vous avez construite. Xcode sélectionnera automatiquement votre profil explicite au lieu du profil générique.

31
répondu GingerBreadMane 2014-09-16 16:02:20

une fois que vous êtes dans L'Organisateur

  • sélectionnez la construction ad-hoc et cliquez sur" Exporter...."
  • sélectionner "Enregistrer pour un déploiement ad Hoc" - > suivant
  • au lieu de sélectionner une organisation à partir de la liste déroulante, sélectionnez "Utiliser une ressource de signature locale" - > choisir
  • Exporter et enregistrer .ipa comme avant.

bien sûr, vous devez avoir généré, téléchargé et installé le ad-hoc profil d'approvisionnement.

27
répondu MrPatol 2015-01-08 17:01:52

il semble que le dernier profil de provisionnement généré gagne en ce moment. Donc vous pouvez simplement re-générer le profil que vous voulez et le télécharger et Xcode L'utilisera.

une approche légèrement meilleure: définissez le profil prov désiré dans votre cible et utilisez la ligne de commande pour construire votre ipa, qui fonctionne, aussi.

voici le script, 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 paramètres:

Xcode settings

17
répondu Thorsten 2014-09-22 18:21:37

Je ne pouvais pas comprendre non plus - a obtenu mordu par elle lors de la soumission à L'AppStore, où il est passé par défaut à un profil Joker.

j'ai fini par construire dans Xcode 6, Puis je suis retourné à la fenêtre de L'organisateur de Xcode 5 pour la soumission. De cette façon, il vous invite à choisir un profil à signer avec.

8
répondu Jonathan del Strother 2014-09-16 09:55:01

dans Xcode 6 (au moins 6.1 que j'utilise maintenant)lorsque vous faites l'exportation pour ad hoc, xcode 6 scannera automatiquement s'il y a un profil d'approvisionnement contenant tous les appareils enregistrés dans le compte du développeur et en même temps correspondre à l'ID du paquet. Si non,il utilisera le profil XC provision. Par conséquent, si vous souhaitez utiliser votre propre profil, par exemple, aux fins de notification push, vous devrez sélectionner tous les appareils de votre profil sur apple developer portal. Je suppose que c'est la raison pour laquelle certaines personnes recréent le profil fonctionnerait et d'autres pas.

btw, utiliser script peut exporter et télécharger à testflight, mais l'appareil ne peut tout simplement pas le télécharger. probablement quelque part où je me suis trompé. si quelqu'un sait pourquoi, dites-le-moi. tks

8
répondu AlexHsieh 2014-10-23 08:38:55

cela a fonctionné pour moi:

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

maintenant vous devriez voir le bon profil d'approvisionnement de nom.

7
répondu user3382891 2014-09-19 12:20:16

j'ai une solution qui fonctionne pour moi.

j'ai installé Xcode 6 et Xcode 5.1.1, Xcode 6 est dans les Applications et Xcode 5.1.1 est dans un autre répertoire. Quand je veux faire une compilation, J'utilise Xcode 6 pour créer l'Archive. Mais vous pouvez aussi voir L'Archive créée dans Xcode 5.1.1 donc j'utilise Xcode 5.1.1 pour distribuer L'Ad Hoc .ipa utilisant le profil d'approvisionnement que je veux utiliser. Ainsi construisez en utilisant Xcode 6 mais distribuez en utilisant Xcode 5.1.1.

6
répondu Adam Freeman 2014-09-28 21:41:16

L'utilisation d'actifs de signature locale tout en exportant résolu le problème pour moi: enter image description here

4
répondu Durga Vundavalli 2016-07-19 13:11:26

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

Dans le Centre pour les Membres -> iOS Provisioning Profiles

  • supprimer le profil de provisionnement qui a été défini par défaut lorsque vous avez essayé de construire l'application (par exemple" XC..."). Créer un profil d'approvisionnement ad hoc (pas de production) avec un nom court.

en Configuration iPhone Utilité - > Profils D'Approvisionnement

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

Dans Xcode -> Organisateur

  • sélectionnez la construction ad-hoc et cliquez sur" Exporter...." Sélectionnez "Enregistrer pour un déploiement ad Hoc" - > suivant
  • sélectionner une organisation dans la liste déroulante
  • vérifiez que votre nouveau profil d'approvisionnement ad hoc est sélectionné automatiquement
  • Exporter et enregistrer .ipa comme avant.
3
répondu Serge Seletskyy 2015-06-09 11:59:31

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

  • lorsque vous générez le profil de provisionnement, il doit être lié à un App ID qui utilise le même identificateur de bundle que votre application. Un générique IDENTIFIANT d'Application ne fonctionnera pas.
  • lorsque vous exportez l'application pour un déploiement ad-hoc, sélectionnez utilisez la signature locale dans la liste déroulante et cliquez sur Choisir.

Xcode trouvera alors le profil de provisionnement correct en mettant en correspondance le numéro D'identification de L'application avec le numéro d'identification du paquet de l'application.

2
répondu Sarah Elan 2015-05-29 13:08:16

en fait, vous devez créer un nouveau profil de Distribution, spécifique pour le déploiement Ad Hoc. Cela peut être trouvé dans le classique centre des membres, mais c'est un nouveau type de certificat.

Vous pouvez ensuite sélectionner les appareils qui peuvent être utilisés pour tester l'application que ou le feriez avec un profil de développeur.

Et le certificat nouvellement créé sera disponible lorsque vous exportez votre colis auprès de l'Organisateur 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 à prerelease.

enter image description here

1
répondu cdescours 2014-09-22 12:11:01

j'ai eu le même problème, finalement je l'ai résolu en régénérant le profil que je voulais utiliser dans Xcode 6 y compris tous les périphériques que j'ai enregistrés sur mon compte IOS Dev, en le faisant de cette façon, lors de la sélection export il montre le profil correct et je peux faire l'exportation ad Hoc avec Xcode 6 sans utiliser de script. Espérons que cela aide.

1
répondu diegomen 2014-10-13 12:28:50

j'ai été bloqué pendant un certain temps avec cela ,, 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 aidera quelqu'un .

0
répondu M.Othman 2014-12-30 15:15:07

Presque le même problème. Après avoir créé une archive pour la distribution (produit > Archive), vous exportez l'archive (cliquez sur Exporter...) et choisissez "Enregistrer pour le Déploiement en Entreprise"; puis "Suivant". Vous sélectionnez ensuite la valeur par défaut " équipe de développement "(par exemple nom de l'organisation) et cliquez sur"Choisir". Enfin, vous serez présenté avec une vue de synthèse qui répertorie également le profil de provisionnement que Xcode a automatiquement trouvé (peut-être créé à la volée) pour vous. Ce POURRAIT être le tort de provisionnement profil (généralement un profil de fourniture de jokers, comme "XC: *") et pourrait se produire parce qu'il existe déjà un profil de fourniture de jokers sur le portail du développeur. Le profil de fourniture de jokers peut être utilisé par d'autres projets plus anciens et il n'est peut-être pas sage de simplement supprimer le profil de fourniture de jokers du portail des développeurs.

j'ai utilisé un billet de soutien pour ceci et seulement obtenu ce lien retour https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1 . Pas vraiment d'une grande aide.

j'ai constaté que MrPatol 's solution fonctionne également pour Enterprise Deployment ainsi et résout le problème pour nous. J'ai d'abord ouvert une session dans le portail des développeurs et créer manuellement un provisionnement profil adapté à mon application. Ensuite téléchargé et installé le nouveau profil d'approvisionnement créé manuellement.

0
répondu sejersbol 2015-05-21 07:49:26

dans xcode 7, Je ne pouvais pas choisir l'approvisionnement ad hoc via

Organisateur -> Télécharger sur App Store & Organisateur -> Valider

mais je pouvais choisir via Organisateur - > Export

Édité:

le téléchargement de l'application après exportation pour adhoc à app store pour testFlight a causé un autre problème discuté ici . Donc, la solution à ces deux problème en est un. Créer AppStore provisionnement pour être en mesure de le récupérer via l'organisateur et utiliser testFlight par téléchargement sur l'appstore.

0
répondu zeeawan 2017-05-23 12:26:23
  1. je pense que c'est une bonne façon de spécifier l'option a-exportOptionsPlist après Xcode 7. Il choisira les bons fichiers de provision comme dans l'export GUI, peu importe ce que vous spécifiez dans le cadre du projet.

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

optionPlist fichier est comme ça", 1519110920"

<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, le développement de rechange

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

Error Domain=IDEDistributionErrorDomain Code=14 " Sans objet les appareils."UserInfo={NSLocalizedDescription=Non applicable appareils trouver.}

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

xcbuild-safe.sh xxxxNormalOptionsInXcodebuild bla...
  1. attendez un instant, une autre étrange erreur arrive.

xcbuild-safe.sh: ligne 62: shell_session_update: commande non trouvée

C'est quoi ce bordel shell_session_update ? Permettez-nous de travailler autour d'elle. Il suffit de définir une fonction avant le vrai cmd xcodebuild, à savoir à la ligne 60 ou 61.

function shell_session_update() { :; }
0
répondu Victor Choy 2017-04-27 03:41:26

en réponse à votre question spécifique, non il n'y a aucun moyen de sélectionner le profil d'approvisionnement à utiliser. De quoi êtes-vous tenter de le faire? (c'est à dire quel est le profil que vous souhaitez sélectionner permettre que l'généré automatiquement l'un ne l'est pas?)

-4
répondu clarkcox3 2014-10-28 13:51:46