【问题标题】:iOS - Use 3rd party library in my custom frameworkiOS - 在我的自定义框架中使用 3rd 方库
【发布时间】:2016-10-25 12:15:29
【问题描述】:

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

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

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,我也收到了这个错误。 (我尝试使用BadgeSwift 删除我的所有代码,同时保留安装的库)

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

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

【问题讨论】:

  • 您的“自己的库”是否已添加到“测试项目”-> 常规-> 嵌入式二进制文件中?如果没有,则添加,清除您的派生数据。清理并再次运行。
  • 关于 3rd 方库,如果您使用的是 Swift 3.0,那么这些项目必须升级到 3.0 运行。如果没有,那么您可以按照我上面评论的步骤进行操作
  • 我也面临同样的问题,@Brian 你找到解决方案了吗?

标签: ios frameworks cocoapods


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    试试这个

    转到:

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

    如果您在每个 3rd 方库中都遇到此错误,请尝试按照上述步骤添加他们的框架。

    通常不是每个 3rd 方库都需要它。

    我们在安装cocoa-pod的时候,libPods-"项目名".cocoa pod的文件中添加了一个

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

    所以通常不需要。

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

    【讨论】:

    • 尝试了您的解决方案。结果是一样的,它不起作用...... :(
    猜你喜欢
    • 2013-03-24
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 2016-08-20
    • 2023-03-21
    相关资源
    最近更新 更多