繁体   English   中英

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

[英]How to import an iOS framework as a git submodule, when the framework has external dependencies

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

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

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

  1. 使“AppKit”成为“迦太基”框架并导入它
  2. 将“AppKit”制作并导入为 CocoaPod。

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

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

让问题更清楚——

如果 iOS 框架项目具有自己的依赖项,是否可以将其作为 Git 子模块导入。 如果子依赖项是——

  1. Cocoapods
  2. 迦太基
  3. Git子模块

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”(因为它对 Z146184A44F381728AEC 项目依赖项一无所知)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM