L'app non può essere aperta perché proviene da uno sviluppatore non identificato


9

Domanda:

Si prega di notare prima di leggere questo che: "Di 'loro di andare a System preferences > Security & privacye allow 3rd party applications to run. Non è una soluzione accettabile per questo problema.

Ho creato un .appChe è stato firmato con un certificato Mac Developer valido. Eppure scaricandolo da Internet e correndo si lancia ancora la richiesta di sicurezza:

Impossibile aprire l'app perché proviene da uno sviluppatore non identificato

Questo è il codesign -vvvdump del terminale per .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

Non capisco perché questo non passi Gatekeeper? Manca qualcosa? Apple ha bisogno di qualcosa di più?


Aggiornamento 1:

@TheDarkKnight ha suggerito che sto usando il certificato errato per firmare il .app. Sembra che siano corretti, quindi sono andato a crearne uno nuovo Developer ID Application certificatema apparentemente perché non sono un "agente" nell'account di gruppo, quindi ora devo aspettare fino a quando "l'agente" non ne crea uno per me - sembra arretrato, c'è nessun altro modo per aspettare che l '"agente" mi faccia questo?

(in Xcode) Se il pulsante di opzione "ID sviluppatore" è disattivato, probabilmente hai un account di gruppo. Questi tipi di account consentono solo al ruolo "Agente" di creare ID sviluppatore. Contatta la persona che ha creato l'account sviluppatore Apple del gruppo se rimani bloccato qui.

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


Aggiornamento 2:

Così ho finalmente ottenuto il mio nuovo certificato oggi, ho firmato nuovamente il .appfile, scaricato dal server e ho ANCORA OTTENUTO IL MESSAGGIO DI ERRORE . L'autorità sembra essere corretta ora:

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

Sto solo firmando .appc'è qualcos'altro che devo fare per far funzionare questo? C'è un periodo di tempo che devo aspettare prima che funzioni?


Aggiornamento 3:

Ora, a quasi 1 mese dall'aggiornamento 2, questo problema è ancora evidente e quindi ha ottenuto una taglia.


1
L'applicazione è incorporata in un'immagine del disco con segno di codice DMG, quando scaricata? Su quale versione di macOS stai testando?
Graham Miln,

@GrahamMiln Dovrò tornare da te sulla versione macOS. Non ho firmato il .dmg, devi firmare anche quello? Stavo usando Successsoftware.net/2012/08/30/… come riferimento e affermano che .dmgnon richiede firma aggiuntiva, quindi non l'ho firmato.
Zze,


Prova a provare la firma con:spctl -vvv -a -t open --context context:primary-signature <full path to app or dmg>
Graham Miln

@GrahamMiln Grazie per i commenti, ti ricontatterò al mattino!
Zze,

Risposte:


7

In generale, quando si distribuiscono app al di fuori del Mac App Store è necessario:

  1. Impostare l'identità della firma su ID sviluppatore
  2. Crea i tuoi certificati ID sviluppatore
  3. Crea il tuo archivio app
  4. Convalida la tua app
  5. Esporta un'app firmata ID sviluppatore
  6. Firma il pacchetto di installazione (non applicabile nel tuo caso)
  7. Testare il comportamento dell'app con Gatekeeper abilitato e di nuovo con Gatekeeper disabilitato

Risolvere problemi come questo può essere complicato perché è facile fare ipotesi su quanto l'OP (in questo caso tu) sappia, ecc. Dalla lettura della tua domanda presumo che i primi tre passi vengano presi in considerazione.

Quindi, iniziamo ricontrollando come stai convalidando la tua app.

Convalida la tua app

Per convalidare un'app con firma ID sviluppatore, attenersi alla seguente procedura:

  1. In Xcode vai su Prodotto> Archivio
  2. Verrà visualizzata la finestra dell'organizzatore degli archivi
  3. Seleziona l'archivio per l'app in questione
  4. Clicca sul Validatebottone
  5. Viene visualizzata una finestra di dialogo che richiede di selezionare un metodo per la convalida
  6. Seleziona l' opzione Convalida un'applicazione con firma ID sviluppatore
  7. Clicca su Next
  8. Nella finestra successiva seleziona una squadra dal menu a comparsa
  9. Clicca su Choose
  10. Fai clic sul Validatepulsante

Ciò identificherà eventuali problemi di convalida. Se ne vengono trovati, questo sarà il tuo problema (o almeno parte di esso), quindi dovrai risolverlo.

Se non vengono rilevati problemi, procedere di seguito.

Esporta un'app con firma ID sviluppatore

  1. Sempre all'interno della finestra dell'organizzatore degli archivi, seleziona l'archivio per l'app in questione
  2. Clicca sul Exportbottone
  3. Viene visualizzata una finestra di dialogo che richiede di selezionare un metodo per l'esportazione
  4. Seleziona l' opzione Esporta un'applicazione con firma ID sviluppatore
  5. Clicca su Next
  6. Nella finestra successiva seleziona una squadra dal menu a comparsa
  7. Clicca su Choose
  8. Fai clic sul Exportpulsante

Una volta esportata la tua app, dovresti provare con Gatekeeper abilitato e di nuovo con Gatekeeper disabilitato.


Grazie per la risposta, ci proverò il prima possibile.
Zze,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.