ios 经营与公有椰果同名的私有椰果

jdzmm42g  于 2022-12-01  发布在  iOS
关注(0)|答案(3)|浏览(146)

我们有一个私有的规范库。我们的一个私有pod依赖于另一个内部pod,称为CWFoundation(s.dependency 'CWFoundation', '~> 0.0.1')。CWFoundation的podspec只是将来自jayway(https://github.com/jayway/CWFoundation)的CWFoundation作为pod使用的一种方式(因为它不存在podspec文件)。
一切都很顺利,直到有人在github中创建了一个同名的新项目CWFoundation(https://github.com/guojiubo/CWFoundation),并将其添加到cocopods的公共回购协议中。
现在,我们的内部pod,当解决依赖关系时,不是从我们的私有规范repo下载CWFoundation,而是从公共repo下载一个,什么都不起作用。
我在www.example.com上cocoapods.org看到
如果您计划派生一个已经是Master Spec存储库一部分的库,那么现在我们建议您选择一个以M前的字母开头的名称
但是我们遵循这个规则,这个吊舱被称为CWFoundation,以“C”开头,它不起作用。
我可以做些什么来检索我们的私人播客文件CWFoundation?

hc2pp10m

hc2pp10m1#

这个注解"M前的一个字母“指的是~/.cocoapods/repos中您的私有规格库的名称。因为~/.cocoapods/repos/master是默认值,您需要类似~/.cocoapods/repos/alpha的名称,而不是~/.cocoapods/repos/zeta。只要这是真的,它就应该在主规格库中的名称之前使用它找到的第一个属于您的规格。

编辑

根据对我的回答的评论,这看起来像是Cocoapods中的一个bug。请submit an issue。在此期间,只需重命名您的podspec就可以解决这个问题。

slwdgvem

slwdgvem2#

试试这个:
pod "NameConflictedPod", :source => MY_OWN_SPEC_REPOSITORY, :tag => '0.1'
这对我有用。
MY_OWN_SPEC_REPOSITORY是你的私有规范库的git URL。我们知道官方默认的规范库是https://github.com/CocoaPods/Specs.git
希望我把MY_OWN_SPEC_REPOSITORY描述得很好。
警告:这个解决方案指定了pod的版本。它不能使用像“~〉0.0.1”这样的版本,因为它会自动更新小错误修复版本。但是......这不是一个大问题,因为pod是自己开发的:P

g2ieeal7

g2ieeal73#

对我来说,它的工作后,这样做如下。

source 'https://github.com/steve-ham/MySpecs.git'
source 'https://github.com/CocoaPods/Specs.git'

target 'MyProject' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MyProject
  pod 'MyLibrary', :git => 'https://github.com/steve-ham/MyLibrary'
end

相关问题