2015-01-09 4 views
1

Мне нужно создать символические ссылки в фреймворках внутри приложения на OSX (версия 10.10.1). Я вне XCode, так как приложение разработано в Qt. Он обеспечивает рамки, но им нужны некоторые ретуши для работы над новыми правилами кодов.Создание символических ссылок в рамках OSX внутри пакета приложений

Я называю «ln -s path_origin path_target_link» и, по-видимому, он работает, ссылки создаются, и они разрешаются в нужном месте.

Но когда я CodeSign приложения, я получаю сообщение об ошибке «вскрыто содержимым в корневом каталоге вложенной структуры»

(Для того, чтобы проверить свою процедуру, я скопировал структуру из другого пакета скачанного который проверяет подлинность codeigning, и я мог бы успешно его подписать, когда я создаю символическую ссылку, способ ввода кода начинает давать ошибку, поэтому я предполагаю, что проблема заключается в создании моей символической ссылки)

Я пробовал другие методы с тем же результатом, поэтому я должен отсутствовать что нибудь. Есть идеи?

ответ

1

Для случая это полезно для всех. В моем случае проблема заключалась в том, что я создавал ссылки с путями absoulte. Очевидно, что они должны быть относительными: вы переходите в каталог, куда должна идти ссылка, и создавайте ссылку относительно текущего местоположения.

0

Значок кода версии 1 записывает только файлы в каталоге Ресурсы и игнорирует остальные. Но в версии 2 по умолчанию все файлы по умолчанию хранятся. Таким образом, мы должны подписывать все версии пакета и бинарные файлы приложений.

Убедитесь, что структура структуры каркаса соответствует требованию яблока. Imposed Framework structured by Apple

В соответствии с документацией Apple в пакетах фреймов нет папки «Содержание». Вместо этого каждая папка версии получает папку «Ресурсы», которая содержит файл Info.plist и которая также символически связана в папке фреймворка верхнего уровня. После сборки SDK фреймы Qt5 имеют неправильный макет, поэтому это не просто проблема с macdeployqt, но и для всей сборки сборки.

enter image description here

так подтвердить, что нет неисправен макет в вашем приложении пачки.

Если у вас есть * .prl в комплекте с картой Qt (i.e.QtCore.framework/QtCore.prl). * .prl-файл может вызвать проблемы для вас, так как codeign просто выдает «незапечатанное содержимое в корневом каталоге встроенной инфраструктуры», не сообщая точно, что происходит. Strip, если у вас есть файлы prl.

Необходимо, чтобы Info.plist имел правильное поле CFBundleExecutable. На данный момент это не так. Отладочная версия Info.plist перезаписывает версию выпуска, а также содержит недопустимые данные. В частности, CFBundleExecutable будет содержать имя библиотеки суффикса _debug, чего не должно быть. Если у вас есть эта проблема, измените неверный info.plist.

Последним шагом является то, что вы должны координировать все рамки, прежде чем подписывать весь комплект приложений.

 Смежные вопросы

  • Нет связанных вопросов^_^