当框架具有外部依赖项时,如何将 iOS 框架导入为 git 子模块
How to import an iOS framework as a git submodule, when the framework has external dependencies
您有主项目“App”及其自己的 Git 存储库;您再次使用自己的 Git 存储库将模型分离到一个单独的框架项目“AppKit”中。 “AppKit”作为 Git 子模块导入到“App”中,一切都很顺利。
如果“AppKit”具有外部依赖项——假设由 CocoaPods 管理,则典型的导入为子模块会失败,因为“App”不满足“AppKit”的依赖项。
我想知道在将“AppKit”作为 Git 子模块导入时是否有任何方法可以实现这一点。可以吗?
我知道有几个简单的解决方案 -
- 使“AppKit”成为“Carthage”可用的框架并导入它
- 制作并导入“AppKit”作为 CocoaPod。
我只是想要一个明确的答案(以防它不能作为 Git 子模块完成)所以我可以继续前进。
背景:追求管理多项目应用程序的理想解决方案(欢迎提出其他想法/意见)
让问题更清晰 --
iOS 框架项目如果有自己的依赖项,是否可以作为 Git 子模块导入。
如果子依赖是--
- 椰子类动物
- 迦太基
- Git 子模块
git submodule
本身,作为 Git 命令的一部分,没有 CocoaPod 依赖关系的概念。
Cocoa 依赖管理器本身确实有这种依赖的概念,声明为子模块,并照此管理 since CocoadPod 0.1.20 (as explained here)。
这意味着:如果 AppKit 本身是一个 CocoaPod,它可以将自己的依赖项声明为 Git 子模块,并且 CocoaPod 将管理(加载)它们,前提是您自己的项目使用 :submodules => true
请求上述依赖项
s.source = { :git => 'https://github.com/<you>/AppKit.git', :tag => "2.1.0", :submodules => true }
所以:
Can an iOS framework project be imported as a Git Submodule if it has dependencies of its own.
如果该项目作为 CocoaPod 导入,如果这些是 git 子模块,Cocoa 依赖项管理器可以处理导入的项目依赖项。
但是,如果导入的项目只是一个 Git 子模块(而不是 declared/imported 作为 CocoaPod),Git 本身不会将所述依赖项管理为“Cocoa Pod”(因为它对 XCode 项目依赖关系一无所知)。
您有主项目“App”及其自己的 Git 存储库;您再次使用自己的 Git 存储库将模型分离到一个单独的框架项目“AppKit”中。 “AppKit”作为 Git 子模块导入到“App”中,一切都很顺利。
如果“AppKit”具有外部依赖项——假设由 CocoaPods 管理,则典型的导入为子模块会失败,因为“App”不满足“AppKit”的依赖项。 我想知道在将“AppKit”作为 Git 子模块导入时是否有任何方法可以实现这一点。可以吗?
我知道有几个简单的解决方案 -
- 使“AppKit”成为“Carthage”可用的框架并导入它
- 制作并导入“AppKit”作为 CocoaPod。
我只是想要一个明确的答案(以防它不能作为 Git 子模块完成)所以我可以继续前进。
背景:追求管理多项目应用程序的理想解决方案(欢迎提出其他想法/意见)
让问题更清晰 --
iOS 框架项目如果有自己的依赖项,是否可以作为 Git 子模块导入。 如果子依赖是--
- 椰子类动物
- 迦太基
- Git 子模块
git submodule
本身,作为 Git 命令的一部分,没有 CocoaPod 依赖关系的概念。
Cocoa 依赖管理器本身确实有这种依赖的概念,声明为子模块,并照此管理 since CocoadPod 0.1.20 (as explained here)。
这意味着:如果 AppKit 本身是一个 CocoaPod,它可以将自己的依赖项声明为 Git 子模块,并且 CocoaPod 将管理(加载)它们,前提是您自己的项目使用 :submodules => true
s.source = { :git => 'https://github.com/<you>/AppKit.git', :tag => "2.1.0", :submodules => true }
所以:
Can an iOS framework project be imported as a Git Submodule if it has dependencies of its own.
如果该项目作为 CocoaPod 导入,如果这些是 git 子模块,Cocoa 依赖项管理器可以处理导入的项目依赖项。
但是,如果导入的项目只是一个 Git 子模块(而不是 declared/imported 作为 CocoaPod),Git 本身不会将所述依赖项管理为“Cocoa Pod”(因为它对 XCode 项目依赖关系一无所知)。