2012-02-15 2 views
2

У меня есть мое приложение, опубликованное как бесплатная и профессиональная версия на рынке Android. Все исходные коды хранятся в одном репозитории git.Поддерживать Android-приложение для множества рынков (на Git)

Теперь я хочу опубликовать приложение на другом рынке приложений. Поскольку изменится только несколько файлов (Android Licensing), я думаю о том, что было бы лучшим способом архивировать это.

Один из способов - это проекты библиотеки Android, я думаю. Но могу ли я архивировать аналогичный эффект с помощью git, так что я могу использовать два репозитория, которые разделяют одну кодовую базу и отличаются только несколькими файлами? Поскольку я в настоящее время не знаком с git, пожалуйста, объясните, что мне нужно делать или где мне нужно обратить внимание.

Спасибо.

+0

Посмотрите на создание другого _branch_ для другого рынка приложений. –

ответ

4

Использование одного git-репо для всех вариантов приложения - это то, как я храню мой. Например, одно из моих приложений имеет бесплатную и профессиональную версию и доступно как на рынке Android, так и в магазине приложений Amazon. В мерзавец, у меня есть 3 ветви:

  • мастер
  • про
  • AMZN

Master является бесплатной версии, про это платная версия на Android рынке, и AMZN является свободным версии в магазине приложений Amazon.

Я все мои функции меняются в мастер. Как только я готов сделать выпуск, я создаю и тестирую бесплатную версию, а затем мастер тегов с номером выпуска. Затем я переключаюсь на pro и запускаю git merge master для внесения всех новых изменений.

Поскольку pro является платной версией, когда я первый разветвлялся от мастера, я прокомментировал код, связанный с объявлением (так как это было всего несколько строк, я не думал, что необходим какой-либо рефакторинг), и изменил любые строки для ссылки на «Some App Pro» вместо «Some App».

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

Аналогично для филиала amzn я изначально удалил любые ссылки на рынок Google и сделал слияние с мастером, когда я готов к выпуску.

Тогда для обоих и для amzn я могу построить тест и тег.

Чтобы сохранить уникальные имена пакетов (что я на самом деле не уверен, это требование или нет), я сначала взял свои действия и переместил их в новые пакеты, то есть com.whatever.free.appname, com.whatever.pro .appname ...

+0

швов, как ужасное количество работы (и стресса) для меня ... –

0

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

+0

rebase? который переписывался бы с нежелательными изменениями. –