如何在另一个.podspec文件中将私有的CocoaPod添加为依赖项?

31

我正在开发一个私有pod,它依赖于另一个私有pod。因此,我只想在我的pod的.podspec文件中提到它。

在pod2的.podspec文件中,它看起来像这样。

s.dependency 'Pod1', '~> 0.0.1' , :git => 'https://github.com/MY_COMPANY/pod1.git', :commit => '9f9f4fe5b5959e0f2ea89e472eccf7aea6f37eea'

我得知在podspec依赖说明符中没有":git和:commit选项",那么如果没有这些选项该如何实现?


我认为答案涉及维护私有podspecs的本地存储库。我们团队已经做过这个,所以如果您在此期间无法弄清楚该过程,我会回复您的。 - Tom Erik Støwer
请查看这个答案。它真的很有帮助... https://dev59.com/m14d5IYBdhLWcg3wAedX#27305019 - paran
如果上述内容需要更多的明确性,请查看 https://dev59.com/pFcO5IYBdhLWcg3wchMB#72714818 上的最后一个答案。 - AD Progress
1个回答

16

您需要维护一个私有podspecs的存储库。

将该存储库添加到您的CocoaPods安装中:

pod repo add MyPrivateSpecs git@git.example.com:MyPrivateSpecs

将私有依赖 Pod 添加到它中:
pod repo push MyPrivateSpecs Pod1

现在,您可以像平常一样引用那个 pod:
s.dependency 'Pod1', '~> 0.0.1'

我有那个 pod spec 仓库,并在其中添加了 pod1.podspec 文件。我可以通过在 podfile 中提及来将私有 pod1 添加到任何项目中。但是,在作为依赖项时却无法正常工作? - kidsid49
[!] /usr/bin/git clone https://github.com/MY_COMAPNY/ios-authentication-pod.git /Users/siddarthchaturvedi/Library/Caches/CocoaPods/GitHub/f9abd6ed9ee100de28fe59d35fd5a2e79eaf990e --mirror正在克隆到裸仓库 '/Users/siddarthchaturvedi/Library/Caches/CocoaPods/GitHub/f9abd6ed9ee100de28fe59d35fd5a2e79eaf990e'...远程: 仓库未找到。致命: 未找到仓库 'https://github.com/Codigami/ios-authentication-pod.git/' - kidsid49
这看起来像是一个身份验证问题。如果你在一个空目录中简单地执行git clone https://github.com/Codigami/ios-authentication-pod.git/,会发生什么?它能够下载吗? - Tom Erik Støwer
2
@Tom,你看到这个错误了吗:Unable to find a specification [PrivateSpecName] depended upon by [ClientPrivateSpec]?我已经运行了pod remote add MySpecs path/to/my/specs.git并验证了cocoapods是否能够看到它(它出现在~/.cocoapods/repos/MySpecs下)。根据我的理解,我已经验证了它可以被看到,但是它仍然在podspec文件中抱怨,无论有没有版本。 - Chris Conover
2
我认为现在第二个命令应该是:pod repo push MyPrivateSpecs Pod1。我猜想语法在某个时候发生了变化,因为链接的文章也使用了 pod push - Rob Jones
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接