我还没有在Podfile文档中找到答案,所以我不确定它是否可行。
我想安装一个有3个依赖项的CocoaPods项目。我将它添加到我的Podfile:
pod 'IDMPhotoBrowser'
并运行install:
$ pod install
Installing DACircularProgress (2.1.0)
…
Installing IDMPhotoBrowser (1.2)
…
Installing SVProgressHUD (0.9)
但是,我的项目中有一个被攻击的SVProgressHUD版本,其中包含当前仓库中没有的代码。此外,SVProgressHUD 0.9是从1月开始的,此后还有几个月的额外提交。我想改用手动添加的版本。
我可以在我的Podfile中指定SVProgressHUD
应该不安装,以便使用我手动添加的版本吗?或者我每次运行pod install
时都需要手动删除它?
我知道我可以将我的fork上传到github并执行类似的操作:
pod 'SVProgressHUD', :git => '<my git repo>', :commit => '<my sha>'
但我希望不需要上传代码只是为了让Cocoapods做我想做的事。
答案 0 :(得分:7)
阻止依赖关系并不是因为它依赖于你自己的依赖。这意味着CocoaPods需要在激活SVProgressHUD
之前找到IDMPhotoBrowser
的本地副本,并在主规范仓库中查找SVProgressHUD
。
您可以使用local podspec首先在Podfile中声明SVProgressHUD
版本来实现所需的设置:
External/SVProgressHUD/SVProgressHUD.podspec
。像这样更新您的Podfile:
pod 'SVProgressHUD', :path => 'External/SVProgressHUD' # this needs to be declared first
pod 'IDMPhotoBrowser' # your custom pod will be used as the dependency here
如果您没有本地podspec,您应该能够获取0.9版SVProgressHUD
的副本(如果需要,可以修改它以编译您添加的任何新代码)。