Подписание библиотек в приложении Mac App Store

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

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

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

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам