Die App kann nicht geöffnet werden, da sie von einem unbekannten Entwickler stammt


9

Frage:

Bitte beachten Sie vor dem Lesen Folgendes: "Sagen Sie ihnen, sie sollen zu System preferences > Security & privacyund gehen allow 3rd party applications to run. Dies ist keine akzeptable Lösung für dieses Problem.

Ich habe ein .appZertifikat erstellt , das mit einem gültigen Mac Developer-Zertifikat signiert wurde. Wenn Sie es jedoch aus dem Internet herunterladen und ausführen, wird immer noch die Sicherheitsaufforderung angezeigt:

Die App kann nicht geöffnet werden, da sie von einem unbekannten Entwickler stammt

Dies ist der codesign -vvvTerminal-Dump für .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

Ich verstehe nicht, warum dies nicht Gatekeeper passiert? Fehlt etwas? Benötigt Apple etwas weiter?


Update 1:

@TheDarkKnight hat vorgeschlagen, dass ich das falsche Zertifikat verwende, um das zu signieren .app. Sieht so aus, als ob sie korrekt sind, also habe ich einen neuen erstellt, Developer ID Application certificateaber anscheinend, weil ich kein 'Agent' im Gruppenkonto bin, muss ich jetzt warten, bis der 'Agent' einen für mich erstellt - scheint rückwärts zu sein, ist da Kein anderer Weg, darauf zu warten, dass der 'Agent' das für mich macht?

(in Xcode) Wenn das Optionsfeld "Entwickler-ID" ausgegraut ist, haben Sie wahrscheinlich ein Gruppenkonto. Bei diesen Kontotypen kann die Rolle "Agent" nur Entwickler-IDs erstellen. Wenden Sie sich an die Person, die Ihr Apple Developer-Gruppenkonto erstellt hat, wenn Sie hier nicht weiterkommen.

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


Update 2:

Also habe ich heute endlich mein neues Zertifikat bekommen, das neu signiert .app, es vom Server heruntergeladen und immer noch die Fehlermeldung erhalten . Die Autorität scheint jetzt richtig zu sein:

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

Ich unterschreibe nur das. Gibt .appes noch etwas, was ich tun muss, damit dies funktioniert? Muss ich warten, bis dies funktioniert?


Update 3:

Jetzt, fast einen Monat nach Update 2, ist dieses Problem immer noch aktuell und hat daher ein Kopfgeld platziert.


1
Ist die Anwendung DMGbeim Herunterladen in ein mit Code signiertes Disk-Image eingebettet ? Auf welcher Version von macOS testen Sie?
Graham Miln

@GrahamMiln Ich muss mich mit der macOS-Version bei Ihnen melden. Ich habe das nicht unterschrieben .dmg, musst du das auch unterschreiben? Ich war mit successfulsoftware.net/2012/08/30/... als Referenz und sie erklären , dass die .dmgnicht zusätzliche Unterzeichnung erfordert , damit ich es nicht unterzeichnet haben.
Zze


Versuchen Sie, die Signatur zu testen mit:spctl -vvv -a -t open --context context:primary-signature <full path to app or dmg>
Graham Miln

@GrahamMiln Danke für die Kommentare, ich melde mich morgen früh bei dir!
Zze

Antworten:


7

Im Allgemeinen müssen Sie beim Verteilen von Apps außerhalb des Mac App Store Folgendes tun:

  1. Setzen Sie die Signaturidentität auf Entwickler-ID
  2. Erstellen Sie Ihre Entwickler-ID-Zertifikate
  3. Erstellen Sie Ihr App-Archiv
  4. Validieren Sie Ihre App
  5. Exportieren Sie eine von der Entwickler-ID signierte App
  6. Unterschreiben Sie das Installationspaket (in Ihrem Fall nicht zutreffend).
  7. Testen Sie das Verhalten der App bei aktiviertem Gatekeeper und erneut bei deaktiviertem Gatekeeper

Das Beheben von Problemen wie diesem kann schwierig sein, da es einfach ist, Annahmen darüber zu treffen, wie viel das OP (in diesem Fall Sie) weiß usw. Nach dem Lesen Ihrer Frage gehe ich davon aus, dass die ersten drei Schritte erledigt sind.

Beginnen wir also damit, zu überprüfen, wie Sie Ihre App validieren.

Validieren Sie Ihre App

Gehen Sie folgendermaßen vor, um eine von der Entwickler-ID signierte App zu validieren:

  1. Gehen Sie in Xcode zu Produkt> Archiv
  2. Das Archivorganisatorfenster wird angezeigt
  3. Wählen Sie das Archiv für die betreffende App aus
  4. Klicken Sie auf die ValidateSchaltfläche
  5. In einem Dialogfeld werden Sie aufgefordert, eine Validierungsmethode auszuwählen
  6. Wählen Sie die Option Entwickler-ID-signierte Anwendung validieren aus
  7. Klicke auf Next
  8. Wählen Sie im nächsten Fenster ein Team aus dem Einblendmenü
  9. Klicke auf Choose
  10. Klicken Sie auf die ValidateSchaltfläche

Dadurch werden Validierungsprobleme identifiziert. Wenn welche gefunden werden, ist dies Ihr Problem (oder zumindest ein Teil davon), daher müssen Sie dieses Problem beheben.

Wenn keine Probleme gefunden werden, fahren Sie unten fort.

Exportieren Sie eine von der Entwickler-ID signierte App

  1. Wählen Sie im Archivierungsfenster des Archivs das Archiv für die betreffende App aus
  2. Klicken Sie auf die ExportSchaltfläche
  3. In einem Dialogfeld werden Sie aufgefordert, eine Exportmethode auszuwählen
  4. Wählen Sie die Option Entwickler-ID-signierte Anwendung exportieren aus
  5. Klicke auf Next
  6. Wählen Sie im nächsten Fenster ein Team aus dem Einblendmenü
  7. Klicke auf Choose
  8. Klicken Sie auf die ExportSchaltfläche

Sobald Ihre App exportiert wurde, sollten Sie mit aktiviertem Gatekeeper und erneut deaktiviertem Gatekeeper testen.


Vielen Dank für die Antwort, ich werde dies so schnell wie möglich versuchen.
Zze
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.