休息套件 + MKStoreKit:由于 JSONKit 导致重复符号
我在我的应用程序中使用 MKStoreKit。现在我也想添加 RestKit,但是添加 RestKit 后,我在 XCode 中收到以下错误消息:
Duplicate symbol _jk_collectionClassLoadTimeInitialization in [...]/libRestKitJSONParserJSONKit.a(JSONKit.o) and [.. .]/Objects-normal/armv7/JSONKit.o 用于架构armv7
我能做些什么吗?
多谢!
编辑:如果我从 MKStoreKit 中删除 JSONKit,则会收到以下错误:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
该错误是由与 MKStoreKit 捆绑在一起的 JSONKit 框架与 RestKit 也引入了 JSONKit 的事实之间的冲突引起的。
最简单的解决方案是从项目(MKStoreKit 附带的文件)中删除 JSONKit.m 文件并保留 JSONKit.h 标头。请务必将您的项目与 RestKit 框架提供的 JSONKit 链接。这将允许您的项目“查看”JSONKit,并且链接器将其与捆绑的库链接起来。
That error is caused by a clash between JSONKit framework bundled with MKStoreKit and the fact that`RestKit brings in the JSONKit as well.
The simplest solution is to remove
JSONKit.m
file from your project (the one that came with MKStoreKit) and keep theJSONKit.h
header. Be sure to link your project with the JSONKit that is provided with RestKit framework. This will allow your project to 'see' the JSONKit and the linker links it with the bundled library.我对 Deezer 和 AdFonic 静态库也有同样的问题。但这两个库都是闭源的。在这种情况下,解决方案是从库中删除符号。
Nathan de Vries 在这里发布了一篇很棒的教程:
http://atnan.com/blog/2012/01/12/avoiding-duplicate-symbol-errors-during-linking-by-removing-classes-from-static-libraries/
I had same issue with Deezer and AdFonic static library. But both of libraries are closed source. In this case, the solution is then to remove symbols from library.
Nathan de Vries post a great tutorial here:
http://atnan.com/blog/2012/01/12/avoiding-duplicate-symbol-errors-during-linking-by-removing-classes-from-static-libraries/