Стратегия управления приложениями и библиотеками с помощью git и xcode - PullRequest
0 голосов
/ 17 января 2012

Мне нужны отзывы о том, как структурировать мои а) каталоги Xcode4 и б) иерархии git для приложений и их библиотек. Я ищу что-то, что будет мне полезно, когда я представлю больше библиотек и больше разработчиков. Моя общая ситуация такова:

  • Я занимаюсь разработкой двух гипотетических приложений для iOS, например MyTwitterApp и MyFacebookApp
  • У меня также есть проект статической библиотеки MyJSONLibrary, который оба приложения используют
  • Я хочу управлять исходным контролем всех трех проектов с помощью git (пока локально, но в конечном итоге с мастером на другом центральном сервере, чтобы я мог привлекать других разработчиков)

Одна (теоретическая) стратегия использует следующую иерархию каталогов, где у меня есть одна копия каждого проекта, и рабочая область для каждого из приложений будет ссылаться на их соответствующий проект 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 могут быть полезны, но я не уверен, что они хорошо работают, когда библиотека должна использоваться несколькими приложениями.

Буду очень признателен за любые мысли или рекомендации передового опыта.

Спасибо. Craig

Ответы [ 2 ]

0 голосов
/ 02 июля 2012

Вы можете использовать CocoaPods для управления несколькими версиями MyJSONLibrary для использования в разных проектах Xcode

0 голосов
/ 17 января 2012

У меня обычно есть копии всех библиотек в каждом проекте (это относится ко всему, не только к xcode).

Вы не хотели бы обновлять библиотеку до новой версии только для того, чтобы она сломала все вашисуществующие сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...