Архивный файл, сгенерированный Xcode с отсутствующими дилибами - PullRequest
1 голос
/ 09 апреля 2019

Я разрабатываю приложение для iOS, используя CMake для создания проекта Xcode, который дает мне цель приложения и пару динамических библиотек C ++.

Проблема в том, что когда я архивирую его через XCode, приложение в файле архива не имеет никаких файлов dylib или других ресурсов, которые есть у меня в обычном дереве сборки. Чего мне не хватает в CMake? Для своей обычной сборки я использую CMake install для получения dylibs в папке приложения. Чего мне не хватает?

1 Ответ

0 голосов
/ 06 мая 2019

Как упомянул battlmonstr, необработанные dlib-файлы не поддерживаются в iOS, поэтому я перенес их в фреймворки.Мне также пришлось установить Установочный каталог платформы ( Framework> Параметры сборки> Развертывание ) на правильный путь.Например, мой архивированный файл заканчивается в / User // Library / Developer / Xcode / Archive / .В архивном файле у меня есть папка Продукт> Приложения , в которой хранится мое архивированное приложение.Поэтому в моем пути Каталог установки я бы указал путь: / Applications / .app / Frameworks , чтобы мои фреймворки помещались туда при архивировании.Через CMake я установил следующее свойство для моей платформы:

XCODE_ATTRIBUTE_INSTALL_PATH "/Applications/${PROJECT_NAME}.app/Frameworks"

Однако это измененное свойство База имен динамической установки библиотеки Параметр сборки для Framework ( Framework> Параметры сборки>База имен динамических библиотек ).Это вызвало проблемы с поиском моих фреймворков через rpaths , поэтому мне также пришлось установить это свойство в CMake со следующим:

XCODE_ATTRIBUTE_DYLIB_INSTALL_NAME_BASE "@rpath"

Что касается ресурсов, я обнаружил, что самый простой способони развернуты в нужном месте в архивном файле с помощью MACOSX_PACKAGE_LOCATION в CMake:

set_property(SOURCE ${MY_RESOURCES} PROPERTY MACOSX_PACKAGE_LOCATION ${MY_RESOURCES_DEST_DIR})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...