CodeSign хочет, чтобы я также подписал мои файлы данных?

У меня есть приложение OSX, и в комплекте MacOS каталог, у меня есть исполняемый файл и куча dylibs. На исполняемый файл, конечно же, указывает Info.plist"s CFBundleExecutable запись. Когда я пытаюсь подписать это, codesign жалуется (по состоянию на 10.9), что мои дилибы не подписаны, что имеет смысл. Таким образом, я подписываю все dylibs, что, я думаю, позволило бы мне подписать основной исполняемый файл сейчас.

Проблема в том, что у меня есть несколько файлов данных в моем MacOS Дир, а также. Приложение является кроссплатформенным приложением Qt, а файлы данных являются файлами локализаций, которые находятся по отношению к основному исполняемому файлу. codesign жалуется, что не хочет подписывать мой основной исполняемый файл, пока файлы данных не подписаны.

Является ли это просто принципиально неправильным поступком - вкладывать в то, что не является MacOS? Является ли подписание этих файлов данных даже разумной вещью - например, как файл.cat в Windows? Я бы не хотел codesign небрежно ударил хеш дайджеста до конца моих файлов данных.

1 ответ

Решение

Да, эти файлы данных должны идти в Resources папка.

Из Руководства по программированию Bundle

MacOS (обязательно)

Содержит автономный исполняемый код приложения. Как правило, этот каталог содержит только один двоичный файл с основной точкой входа вашего приложения и статически связанным кодом. Однако вы также можете поместить в этот каталог другие автономные исполняемые файлы (например, инструменты командной строки).

Ресурсы

Содержит все файлы ресурсов приложения. Это содержимое этого каталога дополнительно организовано, чтобы различать локализованные и нелокализованные ресурсы. Для получения дополнительной информации о структуре этого каталога см. " Каталог ресурсов".

Совместное проектирование файлов данных не изменит их; они просто записываются в _CodeSignature/CodeResources файл.

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