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?
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