RÉSUMÉ :
Si vous ouvrez un projet dans Xcode 8 avec l'option "Automatically manage signing" activée et un nouvel ID de bundle, il créera et téléchargera automatiquement un profil de provisionnement pour celui-ci. Mais comment faire pour que la même chose se produise avec xcodebuild
pour que je puisse l'utiliser sur un serveur de construction distant ?
DÉTAILS :
J'essaie de créer une application Cordova sur un Mac. Cordova configure le projet Xcode pour utiliser "Automatically manage signing", j'essaie donc de l'utiliser.
Je change souvent l'ID du paquet, et je veux donc que Cordova puisse le construire avec un nouvel ID de paquet, qui n'a pas été utilisé auparavant.
Mais quand je cours cordova build ios --release --device --buildConfig build.json
J'obtiens un code de retour 65 et l'erreur suivante :
Check dependencies
No profiles for 'com.my.bundle.id' were found: Xcode couldn't find a provisioning profile matching 'com.my.bundle.id'.
Code signing is required for product type 'Application' in SDK 'iOS 10.3'
** ARCHIVE FAILED **
The following build commands failed:
Check dependencies
(1 failure)
Error: Error code 65 for command: xcodebuild with args: -xcconfig,/cordova-project/platforms/ios/cordova/build-debug.xcconfig,-workspace,MyApp.xcworkspace,-scheme,MyApp,-configuration,Debug,-destination,generic/platform=iOS,-archivePath,MyApp.xcarchive,archive,CONFIGURATION_BUILD_DIR=/cordova-project/platforms/ios/build/device,SHARED_PRECOMPS_DIR=/cordova-project/platforms/ios/build/sharedpch
(Je peux exécuter manuellement la commande xcodebuild et obtenir la même erreur, donc ce n'est probablement pas un problème lié à Cordova).
Mon fichier build.json ressemble à ceci :
{
"ios": {
"debug": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "MY_TEAM_ID",
"packageType": "development"
},
"release": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "MY_TEAM_ID",
"packageType": "enterprise"
}
}
}
J'utilise cordova 7.0.1, cordova-ios 4.4.0, Xcode 8.3.3 et MacOS 10.12.5. J'ai un compte Apple Enterprise.
CE QUE J'AI ESSAYÉ :
Si j'ouvre le projet généré dans Xcode, cela corrige la signature automatique, et à partir de là, je peux exécuter Cordova avec succès avec cet ID de bundle. Mais si j'essaie de l'exécuter avec un autre ID de bundle, il échouera à nouveau.
J'ai essayé d'utiliser security unlock-keychain ~/Library/Keychains/login.keychain-db
d'abord, puisque ça a marché dans le passé, mais ça n'a pas aidé.
J'ai également essayé d'ouvrir ma clé de signature privée dans Keychain Access et de la régler sur "Autoriser toutes les applications à accéder à cet élément", sans succès.
J'obtiens la même erreur que je passe ou pas --debug
o --release
à Cordova.
0 votes
Le seul moyen que j'ai trouvé pour que cela fonctionne est de spécifier l'adresse de l'utilisateur.
provisioningProfile
dans le fichier build.json, malgré la Documentation Cordova indiquant qu'il n'est plus nécessaire.0 votes
@JW. J'espère que cela pourra vous aider - code-dojo.blogspot.in/2012/09/
0 votes
@JW. Essayez également de supprimer manuellement les profils locaux dans : ~/Bibliothèque/MobileDevice/Provisioning Profiles le cas échéant
0 votes
@JW. Regardez la réponse d'Ajeet dans ce lien -. stackoverflow.com/questions/39500634/
0 votes
Gandhi, on dirait que c'est pour la signature manuelle.
0 votes
@JW. Il parle de l'exécution du shell script dans le cadre de la construction de Jenkins. Cela devrait être une signature automatique je crois
0 votes
@JW. Je suis passé par ce lien - blog.bitrise.io/2016/09/21/ pour mieux comprendre le fonctionnement de la signature automatique du code. Mais je ne vois aucune référence à l'ID de l'application ou au profil de provisionnement créé automatiquement. Tout ce qu'il dit, c'est qu'il peut récupérer les profils automatiquement lorsque toutes les entrées sont fournies correctement. Il est également dit que codesigndoc facilite ce document. Je me demande donc si la création automatique de l'identifiant de l'application ou du profil de provisionnement fait vraiment partie de la signature automatique ou s'il s'agit simplement d'une perception erronée ?
0 votes
forums.developer.apple.com/thread/69950 semble être le même problème avec une solution postée
0 votes
@JW. Bonjour, ma réponse a-t-elle un sens ?
0 votes
@Gandhi Oui, vous avez peut-être raison concernant la définition de la signature automatique. Mais même si c'est le cas, Xcode effectue un certain processus lorsque vous ouvrez un projet avec signature automatique, pour créer l'identifiant et le profil de l'application. C'est ce que j'essaie de reproduire en ligne de commande.