Встроенная зависимость xcframework приводит к появлению сообщения «Библиотека не загружена» при использовании моего SDK IOS

Программируем под IOS
Ответить
Anonymous
 Встроенная зависимость xcframework приводит к появлению сообщения «Библиотека не загружена» при использовании моего SDK

Сообщение Anonymous »

Я разрабатываю собственный iOS SDK под названием MySDK, который зависит от нескольких других платформ, например OpenSSL.xcframework и OtherFramework.xcframework.
Чтобы создать MySDK.xcframework, я запускаю:

Код: Выделить всё

xcodebuild build \
-project "MySDK.xcodeproj" \
-scheme "MySDK" \
-destination 'generic/platform=iOS' \
-configuration Release \
-derivedDataPath build \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
OTHER_SWIFT_FLAGS="-no-verify-emitted-module-interface" \
SKIP_INSTALL=NO

xcodebuild -create-xcframework \
-framework "build/Build/Products/Release-iphoneos/MySDK.framework" \
-framework "build/Build/Products/Release-iphonesimulator/MySDK.framework" \
-output "./MySDK.xcframework"
В моем проекте SDK я создал папку Frameworks и добавил туда эти зависимости.
Они добавляются в раздел «Платформы, библиотеки и встроенный контент» как «Встроить и подписать», и мои пути поиска пути выполнения включают эту папку.
В коде я импортирую их с помощью @_implementationOnly import OpenSSL, чтобы они не отображались в сгенерированном .swiftinterface. файл.
Все собирается нормально, но когда я интегрирую MySDK.xcframework в демонстрационное приложение, во время выполнения я получаю эту ошибку:

Код: Выделить всё

dyld[2740]: Library not loaded: @rpath/OpenSSL.framework/OpenSSL
Referenced from:  /private/var/containers/Bundle/Application/79ACB4FD-C1E5-45FD-80FC-DA10437EA342/asdfghj.app/Frameworks/MySDK.framework/MySDK
Reason: tried: '/usr/lib/swift/OpenSSL.framework/OpenSSL' (no such file, not in dyld cache),
Однако OtherFramework.xcframework работает нормально.
Если я вручную добавляю OpenSSL.xcframework в основное приложение (рядом с MySDK.xcframework) и встраиваю его, ошибка исчезает.
Почему это происходит только с некоторыми встроенными платформами (например, OpenSSL.xcframework)
и как это сделать мой SDK полностью автономен, поэтому разработчику приложения не нужно вручную встраивать OpenSSL.xcframework?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ing-my-sdk
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»