【问题标题】:how to know which pod spec file your cocoapod install is pointing to如何知道你的 cocoapod 安装指向哪个 pod 规范文件
【发布时间】:2014-04-25 06:53:16
【问题描述】:

我正在尝试通过 cocoapods 安装 sharekit。如果我在 cocoapod 网站上搜索 sharekit.. 我被指示将其放入 podfile 中:

pod 'ShareKit', '~> 2.5'

网站上的sharekit pod链接到this podspec文件,标记为2.5.6。

到目前为止一切顺利。

但是当我运行pod install 命令时(我还添加了platform :ios, '6.0' b/c 不这样做会引发兼容性错误)我收到此错误:

[!] 无法满足以下要求: - SSKeychain (~> 0.2.1) 需要 ShareKit/Core (2.5.6)- SSKeychain (~> 1.2.2) 需要 Evernote-SDK-iOS (1.3.1)

我的问题是:为什么它说明 evernote 1.3.1 需要什么? b/c 2.5.6 podspec 里面有这个:

s.subspec 'Evernote' do |evernote|
   evernote.source_files = 'Classes/ShareKit/Sharers/Services/Evernote/**/*.{h,m}'
   evernote.dependency 'Evernote-SDK-iOS', '~> 1.3.0'
   evernote.dependency 'ShareKit/Core'
   evernote.libraries = 'xml2'
   evernote.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' }
 end

所以它显然链接到 evernote 1.3.0

sharekit master repo 上的podspec 确实将 evernote 1.3.1 列为依赖项。但是这与我的 pod 安装请求有什么关系?

让事情变得更奇怪..不管我输入pod 'ShareKit', '~> 2.5.6' 还是pod 'ShareKit', '~> 2.5.3'.. 我在谈论sharekit 2.5.6 时仍然会出错.. 为什么会这样?

【问题讨论】:

    标签: ios objective-c git cocoapods sharekit


    【解决方案1】:

    下面解释了如何将 pod 版本链接到您的项目中(它与 Semantic Versioning 密切相关。

    除了没有版本或特定版本之外,还可以使用逻辑运算符:

    '> 0.1' 任何高于 0.1 的版本

    '>= 0.1' 0.1 及更高版本

    '

    '

    除了逻辑运算符之外,CocoaPods 还有一个 optimisic 运算符~>:

    '~> 0.1.2' 0.1.2版本及0.2以下版本,不包括0.2及更高版本

    '~> 0.1' 0.1及1.0以下的版本,不包括1.0及更高的版本

    '~> 0' 0版本及更高版本,这个和没有基本一样。

    来源:http://guides.cocoapods.org/using/the-podfile.html

    如果您想明确链接到特定版本,请将您的 podfile 更改为以下内容:

    pod 'ShareKit', '2.5'
    

    【讨论】:

      【解决方案2】:

      我认为这将暂时解决问题:

      # Install 1.3.0 fix pod install error
      pod 'Evernote-SDK-iOS', '1.3.0'
      pod 'ShareKit', '~> 2.5'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-26
        • 2010-09-12
        • 2016-11-27
        • 2014-01-03
        • 2016-12-13
        • 2014-09-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多