Infatti il messaggio "Sviluppatore non identificato ..." è il risultato di una combinazione di entrambe le attività: verifica l'attributo com.apple.quarantine  e  le risorse per la firma del codice (in * / Contents / _CodeSignature / CodeResources) mentre lo stato effettivo della firma è determinato esclusivamente da  * / CodeResources . 
 Puoi ottenere l'attributo esteso inserendo: 
$ xattr -p com.apple.quarantine /Applications/*.app
 Le informazioni sulla firma del codice sono accessibili inserendo: 
$ codesign -dvvv /Applications/*.app
 Esempio: 
$ codesign -dvvvv /Applications/Google\ Chrome.app/
Executable=/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Identifier=com.google.Chrome
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=273 flags=0x800(restrict) hashes=3+3 location=embedded
OSPlatform=36
OSSDKVersion=658432
OSVersionMin=657664
Hash type=sha256 size=32
CandidateCDHash sha1=bc8e3dffe7d9d5242e09ea80a220ed365d46fdf2
CandidateCDHash sha256=d7ae6211906bb17d593ce9c215d190a81f37e658
Hash choices=sha1,sha256
Page size=4096
CDHash=d7ae6211906bb17d593ce9c215d190a81f37e658
Signature size=8949
Authority=Developer ID Application: Google, Inc. (EQHXZ8M8AV)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=20. Mar 2018 at 07:23:20
Info.plist entries=36
TeamIdentifier=EQHXZ8M8AV
Sealed Resources version=2 rules=7 files=203
Internal requirements count=1 size=240
 La parte più importante è la catena di certificati (e la catena di fiducia): 
Authority=Developer ID Application: Google, Inc. (EQHXZ8M8AV)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
 Qui sono visibili tre diverse autorità: 
-  Certificato root: Apple Root CA 
-  Certificato intermedio per sviluppatori Apple: Autorità di certificazione ID dello sviluppatore 
-  Certificato dello sviluppatore: Google, Inc. (EQHXZ8M8AV) 
 Ciò significa che l'app è firmata con un certificato per sviluppatori, pubblicato e firmato dall'autorità di sviluppo intermedio di Apple, che a sua volta è pubblicato e firmato dalla CA Root di Apple. 
 Questa catena qualifica Google (o più esattamente: il team / unità Google, Inc. (EQHXZ8M8AV)) come uno sviluppatore identificato da Apple. 
 Puoi anche codificare le app da te o con un certificato di codesign da un'altra autorità intermedia / root, ma ciò non supererà Gatekeeper. 
 Ora sono possibili quattro permutazioni assumendo che Gatekeeper sia abilitato (ma non considerando l'autofirmazione / la firma di alieni): 
-  Nessun attributo com.apple.quarantine / nessun certificato Apple Developer (Esempio:  brew cask installato Apache CouchDB ) 
-  Nessun attributo com.apple.quarantine / certificato Apple Developer (Esempio:  brew cask installato Google Chrome ) 
-  Un attributo com.apple.quarantine / nessun certificato Apple Developer (Esempio:  Apache CouchDB installato scaricando il file zip dal sito web e copiando l'app decompressa in / Applicazioni / ) 
-  Un attributo com.apple.quarantine / un certificato per sviluppatori Apple (Esempio:  Google Chrome installato scaricando il dmg dal sito web e copiando l'app in / Applicazioni / ) 
 Nei primi due casi l'app verrà semplicemente lanciata. Nel terzo caso riceverai il messaggio  Unindentified Developer . Puoi risolvere questo rimuovendo l'attributo esteso   xattr -d com.apple.quarantine *    (= caso 1). Nel quarto caso otterrai  "* scaricato da Internet, sei sicuro di volerlo aprire?"