【问题标题】:Xcode12.4 - iOS Umbrella xcframework framework with xcframework sub projectsXcode12.4 - 带有 xcframework 子项目的 iOS Umbrella xcframework 框架
【发布时间】:2021-08-04 18:22:03
【问题描述】:

我想使用 Xcode 12.4 for iOS 将一些 XCFrameworks 放入伞式框架或伞式 xcframework。我尝试了这些线程中提到的所有方法。但是,我无法让它适用于我的客户端应用程序中的任何 swift 类。

请注意,这可以与 ObjC 类无缝协作。

Umbrella framework

XCFramework with static frameworks sub dependencies

方法 1 - 创建 .framework

当我通过添加子 xcframeworks 来复制框架构建阶段来构建 .framework 时,我看到 xcframework 子项目被提取到静态库“.a”文件中。 我在我的 ObjC + Swift 应用程序中导入了这个 .framework,对于导入伞式框架的所有 swift 类中的所有子项目,我得到“没有这样的模块”错误

方法 2 - 创建 .xcframework

当我使用所有 xcframework 子项目创建 .xcframework 时,当我在客户端应用程序中使用伞形框架时,x86_64-apple-ios-simulator.swiftinterface 中出现 No such module 'XXXX' 错误

注意,我在客户端应用程序中链接和嵌入了雨伞/xcframework。

另一个想法

此外,当我使用 Xcode 12.4 创建示例应用程序并导入相同的伞形框架/.xcframework 时,一切正常。这与在旧版本 XCode 中创建的客户端应用程序 .xcodeproj 有关吗?

【问题讨论】:

    标签: ios swift ios-frameworks xcframework


    【解决方案1】:

    一些尝试:

    1. 确保设置了BUILD_LIBRARY_FOR_DISTRIBUTION

    2. 静态链接子框架。如果您使用 CocoaPods 包含其他框架,请确保指定 use_frameworks! :linkage => :static

    3. 在您使用子框架的源文件中,写上@_implementationOnly import SomeFramework

    【讨论】:

    • 感谢您的回答。 #3 --> 在你使用子框架的源文件中,写@_implementationOnly import SomeFramework——对我有用。从第三方 SDK 的开发者那里得到了这个解决方案
    猜你喜欢
    • 2020-11-02
    • 2020-03-24
    • 2020-08-06
    • 2020-03-07
    • 2020-05-21
    • 2021-02-15
    • 2021-12-07
    • 2021-10-22
    • 2020-03-30
    相关资源
    最近更新 更多