web-dev-qa-db-fra.com

Comment télécharger un fichier dmg pour la notarisation dans xcode

J'essaie de télécharger notre application existante sur Apple pour la notarisation.

Selon le document https://help.Apple.com/xcode/mac/current/#/dev88332a81e Je dois ouvrir l'application l'organisateur d'archives xcode.

Nous avons un fichier dmg généré à partir de notre serveur de build jenkins. Comment ouvrir le fichier dmg dans xcode pour le télécharger?

Existe-t-il également un outil de ligne de commande que je peux utiliser pour la notarisation?

10
laocius

Vous pouvez le faire à partir de la ligne de commande.

Vous devez d'abord extraire le .app de votre .dmg et le démissionner, en supprimant le com.Apple.security.get-task-allow droit dans le processus (il est ajouté automatiquement par la génération pour prendre en charge le débogage et est normalement supprimé par l'archivage - le service de notarisation n'acceptera cependant pas un paquet avec ce droit, vous devez donc le supprimer).

Le fichier .entitlements que vous utilisez peut simplement être vide.

Notez également l'utilisation du --options runtime, qui spécifie que votre application a été créée avec le runtime renforcé et est également requise.

codesign -f -s "Developer ID Application: Name (ID)" --entitlements my-entitlments.entitlements --options runtime MyApp.app

Maintenant, vous devez reconditionner votre .app dans un .dmg et démissionner:

(Je utilise le --options runtime signaler ici aussi, mais je ne sais pas si c'est nécessaire)

codesign -s "Developer ID Application: Name (ID)" MyApp.dmg --options runtime

Utilisez ensuite altool pour soumettre votre .dmg:

(Le nom d'utilisateur et le mot de passe doivent appartenir à l'équipe macOS du portail des développeurs)

xcrun altool --notarize-app -f MyApp.dmg --primary-bundle-id my-app.myapp -u username -p password

Si le téléchargement réussit, vous récupérerez un jeton:

RequestUUID = 28fad4c5-68b3-4dbf-a0d4-fbde8e6a078f

Ensuite, vous pouvez vérifier l'état avec altool, en utilisant ce jeton:

xcrun altool --notarization-info 28fad4c5-68b3-4dbf-a0d4-fbde8e6a078f -u username -p password

Finalement, il réussira ou échouera. Continuez à vérifier. Cochez le champ "Statut" de la réponse, qui doit être "succès". La réponse comprendra également un fichier journal que vous pouvez utiliser pour résoudre les erreurs.

En supposant qu'il réussisse, vous devez agrafer la notarisation à l'application:

xcrun stapler staple MyApp.dmg

Et puis vérifiez avec spctl:

spctl -a -v MyApp.app

MyApp.app: accepté

source = ID de développeur notarié

Vous pouvez également appliquer l'indicateur de quarantaine à votre .app et essayer de le lancer, vous verrez la nouvelle boîte de dialogue Gatekeeper:

xattr -w com.Apple.quarantine MyApp.app
19
TheNextman