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

Посоветуйте, пожалуйста, как подойти к этой задаче. Заранее спасибо!


person Eugene Alexeev    schedule 18.05.2021    source источник
comment
У меня такой же блокиратор. Нашли какое-нибудь решение?   -  person iOS    schedule 30.06.2021
comment
Вы проверили: stackoverflow.com/questions/39524148/? Это похоже на более старую версию, но в идеале должно хорошо переводиться.   -  person Rajat Jain    schedule 10.07.2021


Ответы (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 или $ CODEIGN_SIGN_IDENTITY, если структура ты используешь коконады или нет

Идея второго подхода заключается в том, что xcode (xcodebuild) предоставляет несколько переменных среды при создании проекта, поэтому мы пытаемся использовать тот же идентификатор подписи, который использовался для подписи приложения для подписи библиотеки.

person Teja    schedule 12.07.2021