XCFramework со статическими зависимостями фреймворков

У меня есть XCFramework, который зависит от нескольких статических фреймворков.

Мой XCFramework построен с включенным BUILD_FOR_LIBRARIES_FOR_DISTRIBUTION.

Подфреймворки не обязательно должны быть доступны извне XCFramework.

Когда я пытаюсь скомпилировать XCFramework в клиентском (хостовом) приложении, я получаю сообщение об ошибке в файле XCFramework.swiftinterface, в котором говорится: No such module 'FBSDKLoginKit' (FBSDKLoginKit - одна из подфреймворков XCFramework)

Кажется, что не хватает файлов swiftinterface для зависимых модулей. Например, я использую FBSDKLoginKit, но быстрый интерфейс отсутствует в XCFramework.

Для справки я компилирую фреймворк следующим образом:

xcodebuild archive -project "TestFrameowrk.xcodeproj" -scheme "TestFrameowrk" -sdk iphoneos -archivePath ~/Desktop/xcframework.arm SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES

xcodebuild archive -project "TestFrameowrk.xcodeproj" -scheme "TestFrameowrk" -sdk iphonesimulator -archivePath ~/Desktop/xcframework.x86 SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES

xcodebuild -create-xcframework -framework ~/Desktop/xcframework.x86.xcarchive/Products/Library/Frameworks/TestFrameowrk.framework  -framework ~/Desktop/xcframework.arm.xcarchive/Products/Library/Frameworks/TestFrameowrk.framework -output ~/Desktop/Framework.xcframework

2 ответа

Пробовали ли вы добавить другие зависимости отдельно с созданным XCFramework при интеграции с клиентским проектом? Похоже, Apple рекомендует избегать использования зонтичных / вложенных фреймворков с XCFramework.

Да, у меня была такая же проблема с зависимостью от alamofire. Итак, что происходит, когда вы генерируете xcframeworks, у вас есть зависимость от FBSDKLoginKit. Но после создания фреймворков ваш клиент хочет использовать. Вы также должны указать зависимость как FBSDKLoginKit с той же версией, тогда этой проблемы не будет. Для меня я решаю после добавления alamofire на стороне клиента.

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