如何解决当框架有外部依赖时,如何将 iOS 框架作为 git 子模块导入
您拥有带有自己的 Git 存储库的主项目“App”;您再次使用自己的 Git 存储库将模型分离到一个单独的框架项目“AppKit”中。 “AppKit”作为 Git 子模块导入到“App”中,一切都很愉快。
如果“AppKit”具有外部依赖关系——假设由 CocoaPods 管理,典型的 import-as-submodule 会失败,因为“AppKit”的依赖关系不被“App”满足。 我想知道在将“AppKit”作为 Git 子模块导入时是否有任何方法可以实现这一点。可以吗?
我知道有几个简单的解决方案 -
- 使“AppKit”成为“Carthage”框架并导入
- 将“AppKit”制作并导入为 CocoaPod。
我只是想要一个明确的答案(以防它不能作为 Git 子模块完成)以便我可以继续。
上下文:追求管理多项目应用的理想解决方案(欢迎其他想法/意见)
让问题更清楚 --
如果 iOS 框架项目有自己的依赖项,它可以作为 Git 子模块导入吗? 如果子依赖是 --
- 可可豆
- 迦太基
- Git 子模块
解决方法
git submodule
本身,作为 Git 命令的一部分,没有 CocoaPod 依赖的概念。
Cocoa 依赖管理器本身确实有这种依赖的概念,声明为子模块,并以 since CocoadPod 0.1.20(如 explained here)的形式进行管理。
这意味着:如果 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 项目依赖项一无所知)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。