L'application ne peut pas être ouverte car elle provient d'un développeur non identifié

9

Question:

Veuillez noter avant de lire ceci: "Dites-leur d'aller à System preferences > Security & privacyet allow 3rd party applications to runn'est pas une solution acceptable pour ce problème.

J'ai créé un .appqui a été signé avec un certificat de développeur Mac valide. Pourtant, le télécharger à partir d'Internet et l'exécuter lancent toujours l'invite de sécurité:

Impossible d'ouvrir l'application, car elle provient d'un développeur non identifié

Il s'agit du codesign -vvvvidage de terminal pour .app:

Executable=/Users/me/Desktop/ADRA.app/Contents/MacOS/ADRA
Identifier=unity.Company.ADRA NSW 2016
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178145 flags=0x0(none) hashes=5561+3 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha1=79ecf88721d6387749c1f6b10355c3683ef20eb2
CandidateCDHash sha256=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Hash choices=sha1,sha256
CDHash=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Signature size=4739
Authority=3rd Party Mac Developer Application: Company Pty Ltd (NH73TNDB28)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=20 Apr 2017, 2:46:12 PM
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=224

Je ne comprends pas pourquoi cela ne passe pas Gatekeeper? Y a-t-il quelque chose qui manque? Apple a-t-il besoin de quelque chose de plus?


Mise à jour 1:

@TheDarkKnight a suggéré que j'utilise un certificat incorrect pour signer le .app. On dirait qu'ils sont corrects, donc je suis allé en créer un nouveau Developer ID Application certificatemais apparemment parce que je ne suis pas un «agent» dans le compte de groupe, je dois donc attendre que «l'agent» en crée un pour moi - semble à l'envers, est-ce qu'il y a pas d'autre moyen d'attendre que 'l'agent' fasse ça pour moi?

(dans Xcode) Si le bouton radio "Developer ID" est grisé, vous avez probablement un compte de groupe. Ces types de comptes permettent uniquement au rôle "Agent" de créer des ID de développeur. Contactez la personne qui a créé votre compte de développeur Apple de groupe si vous êtes bloqué ici.

https://developer.mozilla.org/en-US/docs/Mozilla/Signing_Mozilla_apps_for_Mac_OS_X


Mise à jour 2:

J'ai donc finalement obtenu mon nouveau certificat aujourd'hui, re-signé le .app, téléchargé à partir du serveur exécuté et toujours reçu le message d'erreur . L'autorité semble être correcte maintenant:

Executable=/Users/me/Downloads/ADRA.app/Contents/MacOS/ADRA
Identifier=com.company.adra
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178133 flags=0x0(none) hashes=5561+3 location=embedded
Library validation warning=OS X SDK version before 10.9 does not support Library Validation
OSPlatform=36
OSSDKVersion=657408
OSVersionMin=656896
Hash type=sha256 size=32
CandidateCDHash sha1=90d2a54162d6d018bf4f7602d7707c8e8e522fc6
CandidateCDHash sha256=dadfe5203d1367ea776f9501025dbd4ce751ee30
Hash choices=sha1,sha256
Page size=4096
CDHash=dadfe5203d1367ea776f9501025dbd4ce751ee30
Signature size=8930
Authority=Developer ID Application: Company Pty Ltd (NH73TNDB28)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=10 May 2017, 3:36:51 pm
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=184

Je ne fais que signer. .appY a-t-il autre chose à faire pour que cela fonctionne? Y a-t-il un délai que je dois attendre avant que cela fonctionne?


Mise à jour 3:

Maintenant près d'un mois après la mise à jour 2, ce problème est toujours apparenté, et a donc placé une prime.

Zze
la source
1
L'application est-elle intégrée dans une image disque signée par code,, une DMGfois téléchargée? Sur quelle version de macOS testez-vous?
Graham Miln
@GrahamMiln Je vais devoir vous revenir sur la version macOS. Je n'ai pas signé le .dmg, devez-vous également le signer? J'utilisais reussoftware.net/2012/08/30/… comme référence et ils déclarent que .dmgcela ne nécessite pas de signature supplémentaire, donc je ne l'ai pas signé.
Zze
Essayez de tester la signature avec:spctl -vvv -a -t open --context context:primary-signature <full path to app or dmg>
Graham Miln
@GrahamMiln Merci pour les commentaires, je vous répondrai dans la matinée!
Zze

Réponses:

7

D'une manière générale, lors de la distribution d'applications en dehors du Mac App Store, vous devez:

  1. Définissez l'identité de signature sur Developer ID
  2. Créez vos certificats d'ID développeur
  3. Créez votre archive d'application
  4. Validez votre application
  5. Exporter une application signée Developer ID
  6. Signez le package d'installation (non applicable dans votre cas)
  7. Testez le comportement de l'application avec Gatekeeper activé et à nouveau avec Gatekeeper désactivé

Le dépannage de problèmes comme celui-ci peut être délicat car il est facile de faire des hypothèses sur ce que l'OP (dans ce cas, vous) sait, etc. En lisant votre question, je vais supposer que les trois premières étapes sont prises en compte.

Commençons donc par vérifier comment vous validez votre application.

Validez votre application

Pour valider une application signée Developer ID, procédez comme suit:

  1. Dans Xcode, accédez à Produit> Archiver
  2. La fenêtre de l'organisateur des archives apparaîtra
  3. Sélectionnez l'archive de l'application en question
  4. Cliquez sur le Validatebouton
  5. Une boîte de dialogue apparaît vous demandant de sélectionner une méthode de validation
  6. Sélectionnez le Valider une application ID-signé développeur option
  7. Cliquer sur Next
  8. Dans la fenêtre suivante, sélectionnez une équipe dans le menu contextuel
  9. Cliquer sur Choose
  10. Cliquez sur le Validatebouton

Cela identifiera tout problème de validation. Si vous en trouvez, ce sera votre problème (ou au moins une partie de celui-ci), vous devrez donc le résoudre.

Si aucun problème n'est détecté, procédez ci-dessous.

Exporter une application signée par un ID développeur

  1. Toujours dans la fenêtre de l'organisateur des archives, sélectionnez l'archive de l'application en question
  2. Cliquez sur le Exportbouton
  3. Une boîte de dialogue apparaît vous demandant de sélectionner une méthode d'exportation
  4. Sélectionnez l' option Exporter une application signée par un ID développeur
  5. Cliquer sur Next
  6. Dans la fenêtre suivante, sélectionnez une équipe dans le menu contextuel
  7. Cliquer sur Choose
  8. Cliquez sur le Exportbouton

Une fois votre application exportée, vous devez tester avec Gatekeeper activé et à nouveau avec Gatekeeper désactivé.

Monomeeth
la source
Merci pour la réponse, j'essaierai ceci dès que possible.
Zze