2014-09-07 1 views
2

Je travaille sur la création d'un flux de travail en ligne de commande pour mon développement ios et je suis coincé à la dernière étape: codesigning.Codesigning app ios à partir de la ligne de commande

J'ai construit une application pour ARMv7 et armv7s, lien et créer l'ensemble de l'application:

$ codesign -d -v path/to/myapp.app 
Executable=/path/to/myapp.app/myapp 
Identifier=com.mycompany.myapp 
Format=bundle with Mach-O universal (armv7 armv7s) 
CodeDirectory v=20200 size=2292 flags=0x0(none) hashes=105+5 location=embedded 
Signature size=4332 
Signed Time=Sep 7, 2014, 2:47:55 AM 
Info.plist entries=26 
TeamIdentifier=XXXXXX 
Sealed Resources version=2 rules=5 files=3 
Internal requirements count=1 size=192 

Je reçois un XXXXX de hachage CodeSigning de:

$ security find-identity -pcodesigning -v 
    1) XXXXX "iPhone Developer: My Name (YYYY)" 
    1 valid identities found 

Cependant, après que je codesign en utilisant la suivant:

codesign --force -vvvv --sign XXXXX --resource-rules=path/to/myapp.app/ResourceRules.plist --entitlements path/to/myapp.xcent path/to/myapp.app 
path/to/myapp.app: replacing existing signature 
path/to/myapp.app: signed bundle with Mach-O universal (armv7 armv7s) [com.mycompany.myapp] 

Il semble encore être malheureux:

$ codesign --verify -vvvv path/to/myapp.app 
path/to/myapp.app: invalid Info.plist (plist or signature have been modified) 
In architecture: armv7s 

Comme référence, je construit un (similaire) application en utilisant Xcode (j'ai utilisé la ligne codesign des journaux à signer cette application), et cela fonctionne très bien:

$ codesign --verify -vvvv path/to/otherapp.app 
path/to/otherapp.app: valid on disk 
path/to/otherapp.app: satisfies its Designated Requirement 

Je suis Je suis sûr que j'ai un hachage de codesigning correct, puisque j'ai signé et déployé des applications via xcode. J'essaye juste de reproduire les mêmes étapes sur la ligne de commande et échoue lamentablement. Évidemment, si j'ai changé info.plist ou quelque chose, je m'attendrais à voir cette erreur, mais je ne m'attends pas à le voir juste après que je fais l'étape de codesign. De la magie noire est à l'œuvre ici. Quelqu'un pourrait-il faire la lumière ou aider avec quelques pointeurs s'il vous plaît?

EDIT:

j'ai enlevé armv7s et juste construit ARMv7 et maintenant il semble heureux au stade de la vérification codesign, mais je ne peux toujours pas déployer l'application avec l'erreur suivante à partir des journaux:

installd [26777]: 0x10050c000 verify_signer_identity: MISValidateSignatureAndCopyInfo a échoué pour /var/tmp/install_staging.Mvi7tR/myapp.app/myapp: 0xe8008019

Je ne sais pas ce qui se passe: \

UN AUTRE ÉDIT:

J'ai obtenu la vérification de codesign pour échouer à nouveau, heh. Donc, si je vérifie myapp.app, alors il dit que tout va bien. Cependant, si j'essaie de vérifier le binaire myapp.app/myapp directement, alors il dit que la vérification a échoué (avec l'erreur ci-dessus, sauf pour l'architecture armv7)

Répondre

0

Longue histoire courte, si je codeign myapp.app/myapp au lieu de myapp .app, puis je peux déployer l'application sur mon téléphone sans aucun problème. Je n'arrive pas encore à codifier les deux, car l'un de myapp.app/myapp ou myapp.app échoue codesign --verify, mais c'est assez bon pour l'instant puisque je peux déployer l'application.

Espérons que cela aide quelqu'un qui se frappe la tête contre le mur.

Je vais essayer de comprendre si je peux coder les deux sur une ligne en quelque sorte, mais c'est un problème de postérité mineur.

Questions connexes