Подпишите iOS dylib перед сборкой
У меня в руках библиотека C++, которую нужно скомпилировать в виде .dylib для iOS. Я использовал iOS-cmake, и этот инструмент построил библиотеку и создал решение Xcode, где я могу найти библиотеку в разделе целей.
Итак, я открываю решение Xcode, выбираю цель и нажимаю
Build
что приводит к ошибке:
Signing for "my_library" requires a development team. Select a development team in the Signing & Capabilities editor.
Проблема здесь в том, что целевые библиотеки в Xcode не имеют опции подписи. Целевая конфигурация содержит только эти вкладки:
Итак, мой вопрос - как это обойти? Могу ли я подписать цель библиотеки, используя
Run Script
?
Посоветуйте, пожалуйста, как подойти к этой задаче. Заранее спасибо!
1 ответ
Есть несколько способов решить эту проблему.
- Вы подписываете библиотеку вручную каждый раз после сборки библиотеки с помощью iOS-cmake с помощью команды codeign, предоставляя соответствующее удостоверение подписи. Это связано с большим количеством ручной работы, поэтому я бы предпочел, чтобы вы выбрали подход 2.
- Вы можете автоматически подписать все включенные библиотеки с помощью сценария выполнения, добавив ниже команду codeign -f -s "$EXPANDED_CODE_SIGN_IDENTITY" "$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH/<library_name>" Здесь идентификатор подписи может быть либо "$EXPANDED_CODE_SIGN_IDENTITY", либо $ EXPANDED_CODE_SIGN_ , это зависит от структуры вашего рабочего пространства, если вы используете cocoapods или нет
Идея второго подхода заключается в том, что xcode (xcodebuild) предоставляет несколько переменных среды при создании проекта, поэтому мы пытаемся использовать тот же идентификатор подписи, который использовался для подписи приложения для подписи библиотеки.