CocoaPods阻止依赖安装

Aar*_*ger 4 cocoapods

我还没有找到这个问题的答案在Podfile文档内,所以我不知道这是否是可能的.

我想安装一个有3个依赖项的CocoaPods项目.我将它添加到我的Podfile:

pod 'IDMPhotoBrowser'

并运行安装:

$ pod install

Installing DACircularProgress (2.1.0)
…
Installing IDMPhotoBrowser (1.2)
…
Installing SVProgressHUD (0.9)
Run Code Online (Sandbox Code Playgroud)

但是,我的项目中有一个hack up版本的SVProgressHUD,其中包含不在当前仓库中的代码.此外,SVProgressHUD 0.9是从1月开始的,此后还有几个月的额外提交.我想用我手动添加的版本代替.

我可以在我的Podfile指定SVProgressHUD应该没有被安装,以便使用我手动添加的版本?或者我每次跑步时都需要手动删除它pod install

备择方案

我知道我可以将我的fork上传到github并执行以下操作:

pod 'SVProgressHUD', :git => '<my git repo>', :commit => '<my sha>'
Run Code Online (Sandbox Code Playgroud)

但我希望不只是需要上传的代码来获取的CocoaPods做我想做的.

Ada*_*arp 7

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

您可以SVProgressHUD使用本地podspec在Podfile中声明您的第一个版本来实现所需的设置:

  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
    
    Run Code Online (Sandbox Code Playgroud)

如果您没有本地podspec,你应该能够采取的0.9版本的拷贝SVProgressHUD(并根据需要修改它来编译您添加任何新的代码).