CocoaPods阻止依赖安装

时间:2013-08-25 19:16:40

标签: cocoapods

我还没有在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做我想做的事。

1 个答案:

答案 0 :(得分:7)

阻止依赖关系并不是因为它依赖于你自己的依赖。这意味着CocoaPods需要在激活SVProgressHUD之前找到IDMPhotoBrowser的本地副本,并在主规范仓库中查找SVProgressHUD

您可以使用local podspec首先在Podfile中声明SVProgressHUD版本来实现所需的设置:

  1. 您的自定义版本需要位于项目的子目录中,并在该目录的根目录下使用有效的podspec,例如External/SVProgressHUD/SVProgressHUD.podspec
  2. 像这样更新您的Podfile:

    pod 'SVProgressHUD', :path => 'External/SVProgressHUD' # this needs to be declared first
    pod 'IDMPhotoBrowser' # your custom pod will be used as the dependency here
    
  3. 如果您没有本地podspec,您应该能够获取0.9版SVProgressHUD的副本(如果需要,可以修改它以编译您添加的任何新代码)。