Приложение для Android на нескольких рынках (на Git) - PullRequest
2 голосов
/ 15 февраля 2012

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

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

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

Спасибо.

Ответы [ 2 ]

4 голосов
/ 15 февраля 2012

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

  • master
  • pro
  • amzn

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

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

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

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

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

Затем и для pro, и для amzn я могу собрать test и tag.

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

0 голосов
/ 15 февраля 2012

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

...