2010-12-06 24 views
36

Je configure le serveur de génération automatique pour le projet d'application iOS. J'en ai fait la plupart. Maintenant, c'est le tour final. La sécurité.Comment installer le certificat développeur/clé privée et le profil d'approvisionnement pour le développement iOS via une ligne de commande?

Le certificat de développeur/clé privée et le profil d'approvisionnement peuvent être facilement installés dans un trousseau avec GUI. Mais je veux le faire via une ligne de commande pour automatiser même le processus de configuration. Exportation/importation de certificats, clés privées, profils d'approvisionnement via une ligne de commande.

Toutes les recommandations seront très appréciées.

+4

Avez-vous déjà trouvé un moyen d'installer un profil d'approvisionnement? J'ai le bit de certificat cloué mais l'autre bit me échappe toujours ... – jkp

Répondre

15

Je trouve des notes de: http://lists.apple.com/archives/apple-cdsa/2010/Mar/msg00021.html

La commande est security. Je lis la page de manuel. Je mettrai à jour cette réponse plus tard après le procès :)

- (modifier) ​​-

D'abord, nous devons donner « Toujours autoriser » l'accès aux certificats/clés dans le trousseau manuellement une fois. Je ne sais pas comment faire cela sans interface graphique.

Et exécutez la commande security unlock-keychain avant d'exécuter l'outil de génération pour chaque session. J'ai utilisé SSH, donc j'ai dû l'exécuter une fois pour chaque session de connexion.

+5

Pour donner l'accès 'Toujours Autoriser', utilisez l'option -A sur l'import de sécurité lors de l'ajout des certificats et des clés. – Luke

+1

L'option -A n'est pas recommandée car elle permet à n'importe quelle application d'utiliser ces certificats. Pour plus de sécurité, utilisez l'option '-T/usr/bin/codesign' décrite ci-dessus. Cela permettra des applications spécifiques. Voir 'import de sécurité --help' pour d'autres options. – atreat

46

L'interface utilisateur graphique toujours autorisée est déclenchée car la commande codesign n'a pas reçu d'acl pour accéder à votre clé privée. essayez ceci:

security unlock-keychain -p <my keychain password> 
security import Certificate.p12 -k ~/Library/Keychains/login.keychain -P password -T /usr/bin/codesign 

Le drapeau -T indique la sécurité pour permettre codesign d'avoir accès aux clés que vous importez dans Certificate.p12.

+6

Ouais, c'est ce que je cherchais aussi. Je voudrais noter que je courais dans le message d'erreur «sécurité: SecKeychainItemImport: l'interaction de l'utilisateur n'est pas autorisée. en essayant d'exécuter la commande ci-dessus. J'ai oublié de déverrouiller mon trousseau. Doh! En cours d'exécution 'security unlock-keychain' fait fonctionner comme un charme. – awolf

+0

Cela fonctionne comme prévu, mais j'ai besoin d'un peu plus ... Mon certificat + paire de clés n'est pas la chose originale d'Apple, mais un certificat auto-signé que nous créons pour nos développeurs internes (nous ne voulons pas qu'ils aient notre réel clé privée sur leurs machines). Maintenant, j'ai besoin de configurer KeyChain pour toujours faire confiance au certificat. Je sais comment le faire dans le GUY, et je sais aussi comment ajouter (importer + faire confiance) un certificat de confiance via: sécurité add-trusted-cert -k /Library/Keychains/System.keychain -d XXXX.cer - - Cependant, cette commande ne fonctionne pas avec les fichiers .p12. Une idée comment je peux faire ça? –

+0

Mise à jour: à partir de maOS Sierra, vous devriez probablement suivre le flux par Ilian Iliev ici: http://stackoverflow.com/questions/39868578/security-codesign-in-sierra-keychain-ignores-access-control-settings- et-ui-p – ablarg