Специальная подпись кода
Для сторонних приложений и двоичных файлов, которые вы сами компилируете и которые требуют подписи кода, используйте специальную подпись кода .
- Я предполагаю, что приложение не будет работать без подписи;
- Я предполагаю, что приложение не будет распространяться;
- Я предполагаю, что вы не заботитесь о подлинности подписи.
Специальная подпись не обеспечивает надежных преимуществ безопасности. Его можно использовать для определения того, было ли изменено приложение, и его можно применять для применения к приложению ограничений безопасности, таких как права доступа.
Специальная подпись будет проверять, codesign
но не проверять spctl
. Это может иметь или не иметь значения в зависимости от подписываемого двоичного файла. Для приложений и исполняемых файлов это вряд ли имеет значение, поскольку spctl
не запускается на локально созданных двоичных файлах.
Почему кодовый знак?
По поводу уточненного вопроса:
Как мне обращаться с неподписанным исходным кодом, который я сам компилирую, так как я не ожидаю, что участники всегда смогут или не забудут подписать свой код, особенно когда речь идет о крошечном вкладе в проекты с открытым исходным кодом со многими участниками.
Для большинства самоскомпилированных приложений нет необходимости подписывать код. Это предполагает, что вы доверяете коду приложения. В macOS вы можете открывать ненадежные приложения из Finder, см. Apple Открыть приложение от неизвестного разработчика .
Если вы не доверяете коду или разработчикам, не компилируйте и не запускайте приложение.
Ваша ответственность
Поставщик исходного кода не несет ответственности или обязательств по предоставлению предварительно скомпонованных кодированных двоичных файлов. Будучи самостоятельно скомпилированным, вся подпись кода - ваш выбор и ответственность.
Apple требует, чтобы представления в их магазинах приложений были подписаны кодом.
Apple просит разработчиков за пределами своих магазинов приложений подписать свой код, но это пока не требуется.
В обоих случаях подписываются только окончательные двоичные файлы. Оригинальный исходный код и ресурсы не подписаны.
Исходный код не подписан
Сам исходный код не может быть подписан осмысленным образом для macOS. Исходные файлы и код могут иметь цифровую подпись, как и любой другой файл, но это не влияет на то, как полученное приложение или двоичный файл обрабатывается macOS.
Как создать специальный код для подписи приложения Mac
Чтобы кодировать приложение в macOS специальной подписью, установите -s
флаг идентификации на -
:
codesign --force -s - </path/to/application>
Все остальные правила, требования и перестановки codesign
команды остаются прежними.
Флаг --force
используется здесь, чтобы перезаписать любую существующую подпись.
Вам может понадобиться добавить --deep
флаг в codesign
команду, чтобы подписать подресурсы, такие как платформы и встроенные сервисы.