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

9

Domanda:

Prima di leggere, leggi: "Dì loro di andare a System preferences > Security & privacy e allow 3rd party applications to run . Non è una soluzione accettabile per questo problema.

Ho creato un .app che è stato firmato con un certificato per sviluppatori Mac valido. Eppure scaricandolo da internet & l'esecuzione continua lancia la richiesta di sicurezza:

App can't be opened because it is from an unidentified developer

Questo è il dump del terminale codesign -vvv 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 superi Gatekeeper? C'è qualcosa che manca? Apple richiede qualcosa in più?

Aggiornamento 1:

@TheDarkKnight ha suggerito di utilizzare il certificato errato per firmare il .app . Sembra che siano corretti, quindi sono andato a creare un nuovo Developer ID Application certificate ma apparentemente perché non sono un 'Agente' nell'account di gruppo, quindi ora devo aspettare fino a quando l''Agente' ne crea uno per me - sembra indietro , non c'è altro modo per aspettare che l '"Agente" faccia questo per me?

(in Xcode) If the "Developer ID" radio button is greyed out you probably have a group account. These types of accounts only allow for the "Agent" role to create Developer IDs. Contact the person who created your group Apple Developer Account if you get stuck here.

link

Aggiornamento 2:

Così finalmente ho ricevuto il mio nuovo cert oggi, ho riscritto il .app , scaricato dal server eseguito e ANCORA RICEVUTO 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 il .app c'è qualcos'altro che devo fare per farlo funzionare? C'è un periodo di tempo che devo aspettare prima che funzioni?

Aggiornamento 3:

Ora a circa 1 mese dall'Aggiornamento 2, questo problema è ancora disponibile, e quindi abbiamo messo una taglia.

    
posta Zze 20.04.2017 - 07:48
fonte

1 risposta

6

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

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

La risoluzione di problemi come questo può essere complicato perché è facile formulare ipotesi su quanto l'OP (in questo caso tu) sappia, ecc. Leggendo la tua domanda assumerò che i primi tre passi siano risolti .

Quindi, iniziamo ricontrollando il modo in cui stai convalidando la tua app.

Convalida la tua app

Per convalidare un'app firmata con ID sviluppatore, procedi nel seguente modo:

  1. In Xcode vai a Prodotto > Archivio
  2. Apparirà la finestra dell'organizzatore dell'Archivio
  3. Seleziona l'archivio per l'app in questione
  4. Fai clic sul pulsante Convalida
  5. Viene visualizzata una finestra di dialogo che ti chiede di selezionare un metodo di convalida
  6. Seleziona l'opzione Convalida un'applicazione firmata da ID dello sviluppatore
  7. Fai clic su Avanti
  8. Nella finestra successiva seleziona una squadra dal menu a comparsa
  9. Fai clic su Scegli
  10. Fai clic sul pulsante Convalida

Questo identificherà eventuali problemi di validazione. 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 firmata da ID sviluppatore

  1. Ancora nella finestra dell'organizzatore dell'Archivio, seleziona l'archivio per l'app in questione
  2. Fai clic sul pulsante Esporta
  3. Viene visualizzata una finestra di dialogo che ti chiede di selezionare un metodo per l'esportazione
  4. Seleziona l'opzione Esporta un ID dello sviluppatore firmata
  5. Fai clic su Avanti
  6. Nella finestra successiva seleziona una squadra dal menu a comparsa
  7. Fai clic su Scegli
  8. Fai clic sul pulsante Esporta

Una volta che la tua app è stata esportata, devi provare con Gatekeeper abilitato e nuovamente con Gatekeeper disabilitato.

    
risposta data 01.06.2017 - 06:57
fonte

Leggi altre domande sui tag