Assinatura de código ad-hoc
Para aplicativos e binários de terceiros que você compila e requer assinatura de código, use uma assinatura de código ad hoc .
- Estou assumindo que o aplicativo não será executado sem uma assinatura;
- Estou assumindo que o aplicativo não será distribuído;
- Presumo que você não se importe com a validade da identidade da assinatura.
Uma assinatura ad-hoc não oferece benefícios de segurança confiáveis. Pode ser usado para determinar se o aplicativo foi alterado e para aplicar restrições de segurança, como direitos, a um aplicativo.
Uma assinatura ad-hoc será validada contra, codesign
mas não spctl
. Isso pode ou não importar, dependendo do binário sendo assinado. Para aplicativos e executáveis, é improvável que isso importe, porque spctl
não é executado em binários criados localmente.
Por que assinar código?
Em relação à questão refinada:
Como devo lidar com o código-fonte não assinado que me compile, pois não espero que os colaboradores sempre possam, ou lembre-se de assinar, o código, especialmente quando se trata de pequenas contribuições para projetos de código aberto com muitos colaboradores.
Para a maioria dos aplicativos auto compilados, não há necessidade de assinatura de código. Isso pressupõe que você confie no código do aplicativo. No macOS, você pode abrir aplicativos não confiáveis a partir do Finder, consulte Apple's Open a app from a developer developer .
Se você não confia no código ou nos desenvolvedores, não compile ou execute o aplicativo.
Sua responsabilidade
O provedor do código-fonte não tem responsabilidade ou obrigação de fornecer binários assinados com código pré-criado. Sendo auto-compilado, toda assinatura de código é sua escolha e responsabilidade.
A Apple exige que os envios para suas lojas de aplicativos sejam assinados por código.
A Apple solicita que desenvolvedores fora de suas lojas de aplicativos assinem seu código, mas ele ainda não é necessário.
Nos dois casos, apenas os binários finais são assinados. O código fonte original e os recursos não estão assinados.
O código-fonte não está assinado
O código-fonte em si não pode ser assinado de maneira significativa para o macOS. Os arquivos e códigos de origem podem ser assinados digitalmente, como qualquer outro arquivo, mas isso não afeta a maneira como o aplicativo ou binário resultante é tratado pelo macOS.
Como Código Ad-Hoc Assine um Aplicativo Mac
Para assinar um aplicativo no macOS com uma assinatura ad-hoc, defina o -s
sinalizador de identidade como -
:
codesign --force -s - </path/to/application>
Todas as outras regras, requisitos e permutações do codesign
comando permanecem os mesmos.
O sinalizador --force
é usado aqui para substituir qualquer assinatura existente.
Pode ser necessário adicionar o --deep
sinalizador ao codesign
comando para assinar sub-recursos, como estruturas e serviços incorporados.