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

标签 ios frameworks git-submodules clean-architecture

您拥有带有自己的 Git 存储库的主项目“App”;您再次使用自己的 Git 存储库将模型分离到一个单独的框架项目“AppKit”中。 “AppKit”作为 Git 子模块导入到“App”中,一切都很愉快。
如果“AppKit”具有外部依赖项——假设由 CocoaPods 管理,那么典型的 import-as-submodule 将失败,因为“App” 不满足“AppKit”的依赖项。
我想知道在将“AppKit”作为 Git 子模块导入时是否有任何方法可以实现这一点。可以做到吗?
我知道有几个简单的解决方案 -

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

  • 我只是想要一个明确的答案(以防它不能作为 Git 子模块完成),所以我可以继续前进。
    背景:追求管理多项目应用程序的理想解决方案(欢迎其他想法/意见)
    让问题更清楚——
    如果 iOS 框架项目有自己的依赖项,它可以作为 Git 子模块导入吗?
    如果子依赖项是——
  • cocoa bean
  • 迦太基
  • 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 }
    
    所以:

    Can an iOS framework project be imported as a Git Submodule if it has dependencies of its own.


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

    关于ios - 当框架有外部依赖时,如何将 iOS 框架作为 git 子模块导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66793475/

    相关文章:

    ios - 用于测试 iPhone 应用程序的 iPad mini

    PHP Fat Free "set"带闭包

    Web 服务的 .NET 编码标准和框架

    git - 与 git 子模块共享一个工作树

    iphone - NSLayoutConstraints 代码使 View 居中并保持其纵横比

    ios - 我的自定义按钮在 iCarousel iOS 中没有获得点击?

    ios - CFNetwork 匿名密码?

    spring bean 上下文配置

    git - 为什么git会说“未暂缓提交更改”并指示子模块文件夹?

    git - 如何从 git repo 添加特定文件夹作为 git 子模块?