113 votes

Comment re-signer le fichier ipa ?

Comment signer le fichier .ipa avec un profil de provisionnement après avoir généré un IPA comme le suivant avec un profil de provisionnement différent ? Je voudrais signer l'IPA avec un profil de provisionnement ad hoc pour les tests bêta, puis re-signer l'IPA exact avec un profil de provisionnement de soumission d'application pour la boutique d'applications.

/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${RELEASE_BUILDDIR}/${APPLICATION_NAME}.app" -o "${BUILD_HISTORY_DIR}/${APPLICATION_NAME}.ipa" --sign "${DEVELOPER_NAME}" --embed "${PROVISONING_PROFILE}"

1 votes

Duplicata possible de Re-signer l'IPA (iPhone)

210voto

Richard Bronosky Points 3163

C'est très facile à faire à partir de la ligne de commande. J'avais un gist d'un script pour faire cela. Il a maintenant été incorporé dans le script d'ipa_sign en https://github.com/RichardBronosky/ota-tools que j'utilise quotidiennement. Si vous avez des questions sur l'utilisation de ces outils, n'hésitez pas à les poser.

Le cœur du problème est le suivant :

CODESIGN_ALLOCATE=`xcrun --find codesign_allocate`; export CODESIGN_ALLOCATE
IPA="/path/to/file.ipa"
PROVISION="/path/to/file.mobileprovision"
CERTIFICATE="Name of certificate: To sign with" # must be in keychain
# unzip the ipa
unzip -q "$IPA"
# remove the signature
rm -rf Payload/*.app/_CodeSignature
# replace the provision
cp "$PROVISION" Payload/*.app/embedded.mobileprovision
# sign with the new certificate (--resource-rules has been deprecated OS X Yosemite (10.10), it can safely be removed)
/usr/bin/codesign -f -s "$CERTIFICATE" Payload/*.app
# zip it back up
zip -qr resigned.ipa Payload

Votre nouvelle application signée s'appelle resigned.ipa.

32 votes

7 votes positifs et pas une seule question. Je suppose que ma critique est juste aussi claire.

0 votes

Je reçois un message d'erreur disant "security : unable to open "/var/folders/74/kpcwmb6j1pn92kr8mtvm2mwh0000gn/T/./resign.I9DrKi7B/Payload/AtlantaJournal.app/embedded.mobileprovision" for reading : No such file or directory".

3 votes

@RahmathullahMPulikkal Je vois que j'avais par erreur codé en dur un chemin dans le gist. Vous devriez vraiment utiliser github.com/RichardBronosky/ota-tools/blob/master/ipa_sign au lieu de l'essentiel. C'est le code maintenu.

36voto

LordT Points 3342

Vérifiez iResign pour un outil simple sur la façon de le faire !

[edit] après quelques manipulations, j'ai trouvé une solution pour démissionner en tenant compte du trousseau de clés. Vous pouvez la consulter à l'adresse suivante https://gist.github.com/Weptun/5406993

0 votes

Existe-t-il un outil permettant de modifier le nom d'affichage ainsi que l'identifiant du groupe lors de la démission ? Cela permettra d'avoir des noms d'affichage différents pour des environnements différents, comme App-Dev, App-QA, App-Stage, etc.

1 votes

Oui, le floatsign.sh fait exactement cela.

0 votes

Travaux. Simple et beau.

15voto

BryanH Points 2725

C'est une vieille question, mais avec la dernière version de XCode, codesign est facile :

$ codesign -s my_certificate example.ipa 

$ codesign -vv example.ipa
example.ipa: valid on disk
example.ipa: satisfies its Designated Requirement

2 votes

@Pavel La réponse à cette question remonte à l'époque où iOS 6.x était la dernière version. Depuis, nous avons eu deux versions majeures, qui ont évidemment changé beaucoup de choses. Vous devriez peut-être limiter vos recherches aux réponses qui concernent la technologie actuelle.

0 votes

Cela a fonctionné pour moi. Vous devez remplacer "mon_certificat" par le nom de la clé dans votre trousseau.

2 votes

codesign est également utilisée dans la réponse de @BrunoBronosky. Je ne suis pas en mesure de l'utiliser directement sur le fichier "*.ipa", et l'option "-vv" renvoie toujours les résultats suivants code object is not signed at all sur des fichiers dont je sais qu'ils sont signés...

1voto

honcheng Points 964

Essayez cette application http://www.ketzler.de/2011/01/resign-an-iphone-app-insert-new-bundle-id-and-send-to-xcode-organizer-for-upload/

C'est censé vous aider à resigner le fichier IPA. J'ai essayé moi-même mais je n'ai pas réussi à passer une erreur avec Entitlements.plist. C'est peut-être juste un problème avec mon projet. Vous devriez essayer.

-2voto

rbiard Points 11

Vous devriez essayer cette nouvelle application OSX : AirSign .

Il vous aidera à résigner votre IPA et à le partager directement par voie hertzienne avec vos bêta-testeurs. Si vous choisissez de le resigner manuellement, surtout si vous modifiez le Bundle Id de l'application, vous devez vraiment faire attention aux droits des applications (dans certains cas, cela peut être compliqué...).

Regards,

Romain

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X