使用git和xcode管理应用程序和库的策略

时间:2012-01-17 04:57:18

标签: ios git xcode4

我正在寻找关于如何构建我的a)Xcode4目录和b)应用程序及其库的git层次结构的一些反馈。当我介绍更多的库和更多的开发人员时,我正在寻找能够很好地为我服务的东西。我的一般情况如下:

  • 我正在开发两个假设的iOS应用程序,比如MyTwitterApp和MyFacebookApp
  • 我还有一个名为MyJSONLibrary的静态库项目,两个应用程序都使用
  • 我想使用git管理所有三个项目的源代码控制(目前在本地,但最终在另一个中央服务器上使用master,所以我可以让其他开发人员参与进来)

一个(理论)策略使用以下目录层次结构,其中每个项目都有一个副本,每个应用程序的工作区将引用其各自的MyXXXApp项目以及MyJSONLibrary库:

+-- dev/
    +-- workspaces/
    |   +-- MyTwitterApp.xcworkspace
    |   +-- MyFacebookApp.xcworkspace
    +-- projects/
       +-- MyTwitterApp/
       |   +-- .git/
       |   +-- MyTwitterApp.xcodeproj/
       |   +-- (source files)/
       +-- MyFacebookApp/
       |   +-- .git/
       |   +-- MyFacebookApp.xcodeproj/
       |   +-- (source files)/
       +-MyJSONLibrary/
           +-- .git/
           +-- MyJSONLibrary.xcodeproj/
           +-- (source files)/    

然而,我不确定xcode / git是否会像两个不同的工作区一样基本上编辑同一个物理项目目录。

或者,或者,我可以选择以下内容:

+-- dev/
    +-- MyTwitterAppWorkspace/
    |   +-- MyTwitterApp.xcworkspace
    |   +-- MyTwitterApp/
    |   |   +-- .git/
    |   |   +-- MyTwitterApp.xcodeproj/
    |   |   +-- (source files)/
    |   +-MyJSONLibrary/
    |       +-- .git/
    |       +-- MyJSONLibrary.xcodeproj/
    |       +-- (source files)/
    +-- MyFacebookAppWorkspace/
        +-- MyFacebookApp.xcworkspace
        +-- MyFacebookApp/
        |   +-- .git/
        |   +-- MyFacebookApp.xcodeproj/
        |   +-- (source files)/
        +-MyJSONLibrary/
            +-- .git/
            +-- MyJSONLibrary.xcodeproj/
            +-- (source files)/

这意味着我现在在任何给定时间都有MyJSONLibrary项目的两个副本,并且可能要求使用集中式git服务器来协调它们之间的更改,但是它可能会让我更灵活地管理这两个应用程序取决于库的不同版本。

我还读过,也许git子模块可能很有用,但是当我需要在许多应用程序中共享库时,我不确定它们是否正常工作。

非常感谢任何想法或最佳实践指导。

感谢。 克雷格

2 个答案:

答案 0 :(得分:0)

我通常拥有每个项目中所有库的副本(这适用于所有内容,而不仅仅是xcode)。

您不希望将库更新为新版本,以使其中断所有现有版本。

答案 1 :(得分:0)

您可以使用CocoaPods管理要在不同Xcode项目中使用的MyJSONLibrary的多个版本