web-dev-qa-db-fra.com

Création d'applications iOS à l'aide de xcodebuild sans codecode

Nous créons une application pour une autre entreprise. Ils détiennent la clé de signature et préfèrent ne pas la partager avec nous.

Il devrait être possible de séparer la génération et la signature, mais comment le spécifier sur la ligne de commande de xcodebuild?

49
noamtm

Afin d'ignorer la signature de code, vous pouvez effectuer une génération manuelle à partir de la console comme ceci:

xcodebuild clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO

De plus, utilisez le -configuration, -target et -sdk paramètres afin de définir vos paramètres de construction.

Reportez-vous à cette réponse Stack Overflow afin d'obtenir une description détaillée sur la façon de désactiver la signature de code dans Xcode.

113
Joern

Pour empêcher complètement la signature de code avec Xcode 7, j'ai utilisé toutes les options suivantes:

CODE_SIGN_IDENTITY=""
CODE_SIGNING_REQUIRED="NO"
CODE_SIGN_ENTITLEMENTS=""
CODE_SIGNING_ALLOWED="NO"

L'option finale, CODE_SIGNING_ALLOWED="NO" semblait faire l'affaire.

16
Ben Flynn

Malheureusement, il peut être difficile de créer votre application en mode de publication sans signature de code. Vous obtiendrez des erreurs du système de construction comme ceci:

CodeSign error: code signing is required for product type 'Application' in SDK
                'iOS 5.1'

Dans ce cas, vous devez configurer votre cible pour utiliser votre identité de signature générique développeur/équipe (*) en mode Release. L'application sera signée avec cela lorsque vous la construirez, et vous pouvez l'envoyer à votre client afin qu'il puisse la démissionner. C'est ce que font la plupart de nos développeurs externalisés.

Vous pourrez alors supprimer les informations de signature de code en supprimant les différents fichiers de l'application comme _CodeSignature et en utilisant l'outil codesign pour supprimer les informations du binaire de l'application. Mais je ne sais pas à quel point c'est facile. Ce n'est pas vraiment essentiel cependant. Il n'y a aucune information sensible dans le profil d'approvisionnement ou les informations de signature.

8
Mike Weller

Dans le Navigateur du projet, sélectionnez votre projet et ouvrez la section "Build Settings" de votre projet (et non une cible particulière).

Sous "Signature de code", recherchez "Identité de signature de code" et pour les modes de débogage et de libération, définissez "Tout SDK iOS" sur "Ne pas coder la signature".

3
user3672430