如何知道您的cocoapod安装指向哪个pod规范文件

时间:2014-04-25 06:53:17

标签: ios objective-c git cocoapods sharekit

我正在尝试通过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主仓库上的podspec确实将 evernote 1.3.1 列为依赖项..但是我的pod安装请求有什么用呢?

让事情变得更奇怪..如果我放pod 'ShareKit', '~> 2.5.6'pod 'ShareKit', '~> 2.5.3'并不重要..我仍然会在谈论sharekit 2.5.6时出错...为什么会这样?

2 个答案:

答案 0 :(得分:2)

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

  

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

     

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

     

'> = 0.1'版本0.1和任何更高版本

     

'< 0.1'任何版本低于0.1

     

'< = 0.1'版本0.1和任何较低版本

     

除逻辑运算符外,CocoaPods还有一个优化运算符〜>:

     

'&〜GT; 0.1.2'版本0.1.2和版本高达0.2,不包括0.2和更高

     

'&〜GT; 0.1'版本0.1和版本高达1.0,不包括1.0和更高

     

'&〜GT; 0'版本0及更高版本,基本上与没有版本相同。

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

如果要显式链接到特定版本,请将podfile更改为以下内容:

pod 'ShareKit', '2.5'

答案 1 :(得分:2)

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

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