Как централизованно администрировать базовую кодовую базу для многих приложений iPhone - PullRequest
0 голосов
/ 23 августа 2011

Ситуация:

У меня есть базовое приложение с некоторыми основными функциями.
Все мои клиенты (потенциально многие десятки) хотят иметь свои собственные приложения в магазине приложений.

Проблема

Если у меня есть десятки приложений в магазине приложений и я хочу изменить некоторые основные функции, мне придется обновить каждый файл в соответствующем проекте, скомпилировать, выполнить iTunes Connect, загрузить и т. Д. Каждое небольшое изменение может потенциально займет дни бездумной работы.

Вопрос

Есть ли способ использовать систему управления версиями, такую ​​как git, для отдельного администрирования частей моего кода с основными функциями, чтобы все проекты обновлялись автоматически при внесении изменений в основные файлы?

Есть ли другой способ облегчить управление этим процессом?

Ответы [ 4 ]

3 голосов
/ 23 августа 2011

Как правило, если у вас есть некоторые основные функции, которые вам нужно повторно использовать в iOS, вы либо создаете статическую библиотеку, которую вы можете включить в другие свои проекты, либо (если основная функция включает в себя такие вещи, как ресурсы, которые нельзя включить встатическая библиотека) у вас будет подпроект.Однако в обоих случаях вам нужно убедиться, что у каждого из ваших проектов приложений есть целевая зависимость с вашим проектом основной функциональности, поэтому он всегда перестраивается с последними изменениями.

  1. Создание кода MundiCoreFramework xcodeпроект, который имеет все ваши основные функции и который компилируется без ссылки на специфичный для клиента код
  2. Создание git-репо для этого базового проекта платформы
  3. В каждом из проектов вашего приложения, использующих эту основную функциональностьдобавьте MundiCoreFramework в виде подмодуля git и добавьте его в качестве подпроекта в проект приложения.
  4. При каждом обновлении базовой структуры вы можете выдавать git sumodule update для каждого приложения и перекомпилировать.
1 голос
/ 23 августа 2011

Я не очень знаком со структурой "target" Xcode, так что на самом деле это может быть лучшим подходом.Но вы определенно можете использовать git для этого.

Возможно, вам нужна ветка "master", где живут все универсальные вещи, а затем ветка для каждой "настраиваемой" версии приложения.

КогдаВ мастере есть изменения, которые вы объединяете через каждую из пользовательских веток.Затем из каждой ветви вы создадите продукт для отправки в магазин.

В каждой ветви вы будете отдельно устанавливать идентификатор приложения, какие бы художественные и текстовые изменения не требовались от одной версии к другой,какой ключ настройки подходит для этой версии и т. д. Все эти настройки могут оставаться локальными для пользовательской ветви версии.

Это совершенно допустимый рабочий процесс в git.Это не то, как большинство людей используют его, а потому, что большинство людей стремятся к ОДНОМУ производственному продукту, а не многим.

1 голос
/ 23 августа 2011

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

0 голосов
/ 23 августа 2011

Вы можете использовать Target для настройки приложения для каждого клиента, это будет означать, что вы можете хранить одну кодовую базу и иметь несколько приложений с одной и той же кодовой базой.

Это не решит проблему обновления приложения вчасть appstore, которую вам все равно придется делать вручную, насколько я знаю.

...