当框架有外部依赖时,如何将 iOS 框架作为 git 子模块导入

哈曼奥赛

您拥有带有自己的 Git 存储库的主项目“App”;您再次使用自己的 Git 存储库将模型分离到一个单独的框架项目“AppKit”中。“AppKit”作为 Git 子模块导入到“App”中,一切都很愉快。

如果“AppKit”具有外部依赖项——假设由 CocoaPods 管理,那么典型的 import-as-submodule 将失败,因为“App” 不满足“AppKit”的依赖项。我想知道在将“AppKit”作为 Git 子模块导入时是否有任何方法可以实现这一点。可以做到吗?

我知道有几个简单的解决方案 -

  1. 使“AppKit”成为“Carthage”框架并导入它
  2. 制作并导入“AppKit”作为 CocoaPod。

我只是想要一个明确的答案(以防它不能作为 Git 子模块完成),所以我可以继续前进。

背景:追求管理多项目应用程序的理想解决方案(欢迎其他想法/意见)

让问题更清楚——

如果 iOS 框架项目有自己的依赖项,它可以作为 Git 子模块导入吗?如果子依赖项是——

  1. 可可豆
  2. 迦太基
  3. Git子模块
VonC

git submodule 作为 Git 命令的一部分,它本身没有 CocoaPod 依赖项的概念。

Cocoa 依赖管理器本身确实有这种依赖的概念,声明为子模块,并从 CocoadPod 0.1.20 开始管理(如此处解释)。

这意味着:如果 AppKit 本身是一个 CocoaPod,它可以将自己的依赖项声明为 Git 子模块,并且 CocoaPod 将管理(加载)它们,前提是您自己的项目要求这些依赖项,使用 :submodules => true

s.source   = { :git => 'https://github.com/<you>/AppKit.git', :tag => "2.1.0", :submodules => true }

所以:

如果 iOS 框架项目有自己的依赖项,它可以作为 Git 子模块导入吗?

如果该项目作为 CocoaPod 导入,则 Cocoa 依赖项管理器可以处理导入的项目依赖项(如果它们是 git 子模块)。
但是如果导入的项目只是一个 Git 子模块(没有被声明/导入为 CocoaPod),Git 本身不会将所述依赖项作为“CocoaPod”进行管理(因为它对 XCode 项目依赖项一无所知)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章