Подпишите 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 ответ

Есть несколько способов решить эту проблему.

  1. Вы подписываете библиотеку вручную каждый раз после сборки библиотеки с помощью iOS-cmake с помощью команды codeign, предоставляя соответствующее удостоверение подписи. Это связано с большим количеством ручной работы, поэтому я бы предпочел, чтобы вы выбрали подход 2.
  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) предоставляет несколько переменных среды при создании проекта, поэтому мы пытаемся использовать тот же идентификатор подписи, который использовался для подписи приложения для подписи библиотеки.

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