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
файл.