A única maneira de "assinar automaticamente" um aplicativo para o Gatekeeper é se inscrever no Programa Apple Developer (atualmente US $ 100 / anualmente), inscrever-se em um certificado de assinatura de código e instalar o XCode para criar "seu" aplicativo. / p>
Você pode criar um aplicativo no XCode e incluir apenas o conteúdo do outro aplicativo que você realmente deseja executar no pacote do aplicativo e assiná-lo com seu certificado. Este aplicativo pode ser iniciado em qualquer lugar (embora você possa estar violando a licença do software original).
Obviamente, isso não é muito prático. O método sugerido em outra resposta aqui para copiar o conteúdo para o pacote de outro aplicativo não irá, por si só, contornar o Gatekeeper. A verificação "Desenvolvedor conhecido" exige que o pacote do aplicativo contenha uma subpasta _CodeSignature
e um ID do aplicativo que corresponda ao desenvolvedor assinado no arquivo Info.plist
do pacote. Ambos serão destruídos se você substituir todo o conteúdo, e a substituição seletiva do conteúdo resultará em um aplicativo que possui uma assinatura de código que não corresponde à do aplicativo que está reivindicando.
Se esse método de 'transplante' funcionar, não é porque ele engana o Gatekeeper; em vez disso, porque impede que o Gatekeeper seja invocado. Independentemente de um pacote de aplicativos estar assinado, o sistema do Gatekeeper só verificará os aplicativos "em quarentena". Isso significa que um sinalizador de atributo estendido foi adicionado ao arquivo, o que indica que ele foi baixado da Internet ou, de outra forma, de uma fonte desconhecida. O Safari e o Mail adicionarão esse sinalizador aos arquivos baixados, mas não há necessidade de que todos os aplicativos se comportem dessa maneira. Você pode ver esse sinalizador executando o comando ls -l@
no diretório que contém seu pacote de aplicativos:
drwxr-xr-x@ 3 self wheel 102 Jul 7 2013 My Sketchy App.app
com.apple.quarantine 57
Se você copiar o conteúdo de um aplicativo no pacote de outro aplicativo, o aplicativo recém-criado terá os atributos estendidos que o pacote já fez. Portanto, se ele não tiver um sinalizador quarantine
, o seu novo aplicativo também não poderá ser lançado. Mas se tiver um quarantine
, ainda assim, e o Gatekeeper entrará em vigor.
Transplantar o conteúdo do aplicativo é apenas uma maneira indireta de remover esse sinalizador. Você pode realizar a mesma coisa simplesmente removendo diretamente o banner quarantine
do aplicativo, assim:
xattr -d com.apple.quarantine "./My Sketchy App.app"
ou você pode remover indiretamente o sinal quarantine
iniciando / permitindo o aplicativo em outro Mac (que não tem restrições do Gatekeeper em vigor ou em que você tenha uma conta de administrador que permita substituí-lo) e copiando-o para a máquina restrita por meio de um método que não recria o sinalizador (aplicativos copiados de um compartilhamento SMB, por exemplo, não serão colocados em quarentena).
História longa: o clique com o botão direito do mouse em "Abrir" (ou "Abrir mesmo" na tela Segurança das Preferências do sistema) adiciona uma exceção ao Gatekeeper do aplicativo em questão, que exige privilégios de administrador. Remover o sinalizador quarantine
de um aplicativo requer apenas permissões de gravação para o pacote de aplicativos e impede que o Gatekeeper se envolva.