【问题标题】:Contradicting frameworks on -ObjC-ObjC 上的矛盾框架
【发布时间】:2015-03-24 18:39:57
【问题描述】:

所以在我的项目中,我有 FacebookSDK、ParseSDK 和 FirebaseSDK。 Facebook 和 parse 都需要螺栓,所以我实现了。但是,除非我删除 -ObjC 标志,否则它不会编译。问题是如果我删除这个标签,代码会编译,但是在尝试初始化 Firebase 时会导致运行时错误,因为它需要 -ObjC。我一团糟。我可以只为该特定框架设置标志吗?感谢您的帮助。

【问题讨论】:

  • 不是对您问题的直接回答,但我 100% 建议仅对这些依赖项使用 Cocoapods。看起来 Bolts 已在其他 Facebook 存储库中设置为适当的依赖项,并且不会导致任何问题,同时通常会让您头疼(手动导入和管理库是浪费时间,但您可以避免它)。
  • SFWdc 我接受了你的 amswer,但最后我按照 dima 的建议选择了 Cocoapods 并解决了错误。谢谢迪玛 :))

标签: ios


【解决方案1】:

(我认为这应该是一个评论,但我还没有足够的代表,希望这有助于解决这个问题。)

我遇到了完全相同的问题(使用 SponsorPay SDK 而不是 FirebaseSDK),Facebook SDK 和 Parse 可以很好地协同工作,直到我添加 SponsorPay 工作所需的 -ObjC 标志。 p>

删除 Bolts.framework 不是解决方案,因为这会产生一些链接错误:

"_BFTaskMultipleExceptionsException", referenced from:

      ___53+[PFObject(Private) deleteAllAsync:withSessionToken:]_block_invoke214 in Parse(PFObject.o)

      ___65+[PFObject(Private) _deepSaveAsync:withCurrentUser:sessionToken:]_block_invoke311 in Parse(PFObject.o)

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

如果我使用 FacebookSDK 包中包含的 Bolts.framework,我会遇到完全相同的错误。

但是,使用 Parse Library 中包含的 Bolts.framework 我得到了一个不同的错误:

ld: 91 duplicate symbols for architecture x86_64

所有框架和库都已更新。

编辑:

使用 cocoapods 也为我解决了这个问题!

【讨论】:

  • 我也通过使用 cocoapods 安装 Facebook 和 Parse SDK 解决了这个问题
【解决方案2】:

请参阅:FacebookSDK and Bolts conflicting each other (duplicate symbols) on build

我怀疑 Facebook 已经坏了,并且包含了螺栓本身。任何第三方框架都不应该包含另一个第三方框架,因为它导致了这一点。所有第三方框架都应在最终应用阶段链接。进入任何链接他们自己的子库的框架,并删除子库(并针对违规者打开错误)。

【讨论】:

  • 感谢您的回复,但我让 parse 和 facebook 框架一起工作。 Firebase 需要标志,而其他两个不需要它
  • 他们不能用它编译的事实表明他们链接不正确(我假设你看到“重复符号”错误?)你应该确保他们都不是直接的连接螺栓,最后连接。 -ObjC 标志会影响最终链接,因此很难仅将其应用于某些库。重点是强制包含某些东西,即使它们显然没有被使用。
  • 是的,如果我删除标志,我会得到重复的符号错误,但我不知道如何摆脱它们,其他棕褐色删除标志
  • 通过删除它们每个链接的重复框架(螺栓)。您需要从所有子框架中移除螺栓,然后将其链接到顶部。我也会与 SDK 提供商一起讨论。如果他们给你运送螺栓,听起来他们的包裹已经坏了。
  • 在我的 Xcode 项目中,我有一个 Parse.framework、一个 Facebook.framework 和一个 Bolts.framework。该框架只有一份副本。我唯一剩下的就是删除这个唯一的副本,这不会给我任何螺栓......我做错了什么吗?
猜你喜欢
  • 1970-01-01
  • 2012-08-16
  • 2019-05-02
  • 2011-02-03
  • 1970-01-01
  • 2017-11-06
  • 2016-02-21
  • 1970-01-01
  • 2018-10-15
相关资源
最近更新 更多