iOS - 在我的自定义框架中使用第三方库

时间:2016-10-25 12:15:30

标签: ios frameworks cocoapods

我正在构建自己的框架,并在我的框架中通过BadgeSwift安装了第三方库CocoaPods。在将我的框架集成到测试项目之前,一切都很顺利。

在我的测试项目中,每次在模拟器上运行时都会出现此运行时错误:

dyld: Library not loaded: @rpath/BadgeSwift.framework/BadgeSwift
Referenced from: /Users/brian/Library/Developer/CoreSimulator/Devices/4D2C8A32-ADD7-4D3C-8C3A-0AD696B8B147/data/Containers/Bundle/Application/F0B059EB-E004-49B7-92A1-7798CE17B12A/TestIMKit.app/Frameworks/IMKit.framework/IMKit
Reason: image not found

即使我实际上根本没有使用BadgeSwift,我也会收到此错误。 (我试图在保留lib的同时使用BadgeSwift删除所有代码)

另外,我确信BadgeSwift无关紧要。每个第三方lib都会触发此运行时崩溃。

如何通过CocoaPods正确地在我的自定义框架中安装第三方库?

2 个答案:

答案 0 :(得分:1)

拉开我的大脑近2天后,我终于找到了解决方案。 您需要做的就是将您正在使用的第三方框架设置为例如-socket.io-client-swift为可选,而不是在“构建阶段”部分的“与库链接二进制”下的“必需”。就这样。再试一次,它将按预期运行。

答案 1 :(得分:0)

试试这个

转到:

Your Project -> Target -> General -> Embedded Binaries 
  • 在此部分添加您的库。
  • 清理派生数据文件夹
  • 清理并运行

如果您在每个第三方库中都遇到此错误,请尝试按照上述步骤添加其框架。

通常每个第三方库都不需要它。

当我们安装cocoa-pod时,libPods - "项目名称" .a文件的可可粉添加在

Your Project -> Target -> General -> Linked Frameworks and Libraries

所以通常不需要。

然而,如果您遇到此问题,如果您通过添加上述步骤解决此问题,那么它会很好,或者尝试重新安装CocoaPods