在框架中使用 Carthage
Using Carthage in frameworks
我在 Xcode 中创建了两个框架。
在每个框架中,我使用 Carthage 来获取外部框架。
我有以下设置(希望它有意义):
- MyNetworksFramework
-- Framework reference(via Carthage): Alamofire
- MyUIFramework
-- Framework reference(via Xcode): NetworksFramework
-- Framework reference(via Carthage): RxSwift
- MyApp
-- Framework reference(via Xcode): UIFramework
我在模拟器中没有遇到任何问题,但是当在设备上 运行 时,我收到如下错误:dyld: Library not loaded... RxSwift
.
我已将我的每个自定义框架添加到 "General" 下的嵌入式框架中。
我是否遗漏了一些外部框架设置?
我过去也遇到过同样的问题。修复此问题所需的是 运行 他们在 Github 中提到的 carthage copy-frameworks 命令。但是,不是将复制框架构建阶段放在每个框架上,而是需要将复制框架放在 MyApp 构建阶段。对于您在 MyApp 中的情况,您将添加 Alamofire 和 RXSwift。同时从 MyNetworksFramework 和 MyUIFramework 中删除复制框架。
这是我在构建阶段中的脚本的样子:
我在 Xcode 中创建了两个框架。
在每个框架中,我使用 Carthage 来获取外部框架。
我有以下设置(希望它有意义):
- MyNetworksFramework
-- Framework reference(via Carthage): Alamofire
- MyUIFramework
-- Framework reference(via Xcode): NetworksFramework
-- Framework reference(via Carthage): RxSwift
- MyApp
-- Framework reference(via Xcode): UIFramework
我在模拟器中没有遇到任何问题,但是当在设备上 运行 时,我收到如下错误:dyld: Library not loaded... RxSwift
.
我已将我的每个自定义框架添加到 "General" 下的嵌入式框架中。
我是否遗漏了一些外部框架设置?
我过去也遇到过同样的问题。修复此问题所需的是 运行 他们在 Github 中提到的 carthage copy-frameworks 命令。但是,不是将复制框架构建阶段放在每个框架上,而是需要将复制框架放在 MyApp 构建阶段。对于您在 MyApp 中的情况,您将添加 Alamofire 和 RXSwift。同时从 MyNetworksFramework 和 MyUIFramework 中删除复制框架。
这是我在构建阶段中的脚本的样子: