【问题标题】:Solve namespace collision for pod dependency解决 pod 依赖的命名空间冲突
【发布时间】:2015-11-24 22:31:44
【问题描述】:

我有一个依赖 AFNetworking 的 CocoaPod(当前版本是 2.6.3)。
同时我想使用仍然使用 AFNetworking 1.3.0 的 RestKit。
是否有一种“理智”的方式来处理我的 AFNetworking 符号,以免它们与 RestKit 冲突?

示例 podspec 文件 sn-p:
s.dependency 'JSONModel', '~> 1.1' s.dependency 'tolo','~> 1.0' s.dependency 'AFNetworking', '~> 2.0'

在另一个项目中,我有:
pod 'RestKit' pod 'MyLibrary'

结果:
[!] Unable to satisfy the following requirements: - 'AFNetworking (= 1.3.4)' required by 'Podfile.lock' - 'AFNetworking (~> 2.0)' required by 'MyLibrary (2.0)'
我也尝试过使用CocoaPods packager,但没有成功。出于某种原因,MyLibrary 的依赖项未包含在损坏的框架中。

我也尝试过仅破坏 AFNetworking,但同样没有成功,因为我无法指向 podspec 文件中的本地依赖项 (!?)。

【问题讨论】:

    标签: objective-c cocoapods


    【解决方案1】:

    如果您在项目中使用RestKit,则不能使用AFNetworking 2.x,因为RestKitAFNetworking 1.3.x 紧密集成您的选择是使用AFNetworking 2.x 并从Podfile 中删除RestKit 或使用RestKit 并删除您对AFNetworking 2.x 的依赖项 快速谷歌搜索AFNetworking 2.x 与RestKit 应该会找到很多涵盖该主题的文章。希望我的cmets帮到你。

    【讨论】:

    • 没错,这似乎是一个有点热门的讨论话题。我很固执,我仍在努力让它与 CocoaPods 打包器一起工作。理论上,应该可以同时包含 AFNetworking 2.x 和 1.x,通过“修改”其中一个的符号(实际上使 duplicate symbols for architecture 错误无效)。感谢您的意见!
    • 没问题,让我知道您决定使用什么,因为我仍在我的应用程序中使用RestKit,但我可能会切换到AFNetworking 2.x ...只是还没有对该主题进行了大量研究。
    • 到目前为止我在做什么: 1. 使用 AFNetworking 2.x 创建我的 pod 2. pod 打包我的 pod 并从中创建一个“文件夹” 3. 使用生成的文件夹(其中包含我的作为框架的库)作为第二个项目中的 pod 源(如:pod "MyLibrary", :path => 'MyLibrary/' pod 'RestKit'
    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    相关资源
    最近更新 更多