【问题标题】:Library not loaded issue in XcodeXcode 中的库未加载问题
【发布时间】:2018-05-17 05:47:27
【问题描述】:

我已经对 Library not loaded 的答案进行了一些搜索,发现几乎所有与在 Application 中使用框架相关的答案,但我的问题有所不同。它实际上是在framework中使用framework,然后在App中使用。

假设我有框架 AB,框架 A 使用框架 B,然后没有框架库在应用程序中加载使用,所以最终我只想在应用程序中使用或公开框架 A 而不是两者,并且没有直接需要未在应用程序中加载的框架库。

到目前为止我做了什么:

将框架A添加到应用程序中,也添加到嵌入式二进制文件中,并使用框架A的一些代码,但没有框架B。构建并运行

问题

构建成功,但在将应用程序安装到设备后立即产生此问题。

dyld:库未加载:@rpath/B.framework/B
参考自: /private/var/containers/Bundle/Application/6A869182-AFE5-403-2809B4AAA843/A-SDK-DemoApp.app/Frameworks/A.framework/A 原因:找不到图片

注意:框架名称根据 A 和 B 更改。

要求 我只想与客户端共享框架 A 而不是框架 B,因为 App 只会与框架 A 通信,所以需要一些建议如何解决这个问题,也请不要将那些与单帧添加到应用程序相关的答案推荐给我。谢谢

【问题讨论】:

  • 我不清楚您是添加手动复制的框架还是使用 Cocoa Pods。无论如何,在我看来,如果框架 A 需要框架 B,那么它应该被包括在内。很多时候,我遇到的构建问题最终通过添加询问或检查项目导航器>目标>构建设置>架构>仅构建活动架构>下的构建设置的框架来解决,如果你正在使用可可豆荚。由于某种原因,默认的 YES 会导致问题。在所有配置中将其设置为 NO,即调试、发布。希望对您有所帮助。

标签: ios xcode frameworks


【解决方案1】:

花了一些时间阅读了这个answer,上面写得很清楚

我就这个问题联系了 Apple,并找到了解决问题的方法。 Apple 的技术支持明确表示,我需要添加 FrameworkB.xcodeproj 到我的应用程序项目

所以我只是使用了一些技巧,在框架 A 中转到目标 -> 添加新的复制文件阶段 -> 将目标更改为框架 -> 添加框架 B,如屏幕截图所示。

现在构建Framework A,进入Product文件夹并点击在finder中显示Framework A,你会看到Framework B将被添加并暴露在 A 内部,如屏幕截图所示。

这一切都来自框架方面,现在在 App 内的 Embedded 部分添加框架 A。现在再次尝试在 Embedded 部分添加另一个框架,然后单击 Add Others 按钮,单击 Framework A -> 单击 Framework 文件夹,选择 Framework B,如屏幕截图所示。

这将解决问题。如果有人不明白,请随时发表评论,我会尽量说清楚。希望这对其他人也有帮助。

【讨论】:

  • 结果Unexpected duplicate tasks: ...
猜你喜欢
  • 2017-06-02
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-10
  • 2017-07-31
相关资源
最近更新 更多