我正在尝试通过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时出错...为什么会这样?
答案 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'