Подписание библиотек в приложении Mac App Store - PullRequest
1 голос
/ 29 октября 2011

Я только что отправил приложение в Mac App Store, которое использует некоторые внешние динамические библиотеки.

Я получил письмо от Apple, в котором говорится:

Неверная подпись - исполняемый файл нечто.app/Contents/Frameworks/some.dylib не подписан, подпись недействительна или не подписана сертификатом Apple. Подробнее см. В Руководстве по подписыванию кода и изолированной программной среде приложения.

Проблема, конечно, вызвана тем, что я подписал только «мой» исполняемый файл, а не библиотеки.

Является ли обычной / хорошей практикой также подписывать библиотеки, даже если они написаны не мной?

1 Ответ

2 голосов
/ 29 октября 2011

Думайте о цифровой подписи файла как:

  1. Средство проверки целостности этого файла, что позволяет определить, был ли он изменен;

  2. Средство проверки того, кто опубликовал этот файл, что не совпадает с написанием соответствующего исходного кода. Вы подтверждаете, что именно вы отправили этот файл.

Поскольку динамические библиотеки содержат исполняемый код, рекомендуется (и в некоторых случаях, например, MAS, обязательно) ставить цифровую подпись по той же причине, по которой вы подписываете основной исполняемый файл: гарантируя, что ваше приложение - это то, что вы и только вы) отправлены с вашей машины сборки, никаких изменений. Работающая программа включает в себя основной исполняемый файл и все загруженные библиотеки. Если вы подпишете только основной исполняемый файл, оставив динамические библиотеки без знака, можно будет изменить динамические библиотеки (или даже заменить их), изменив тем самым то, что делает ваша программа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...