Приложение для Android на нескольких рынках (на Git)
У меня есть приложение, опубликованное как бесплатная и профессиональная версия для Android Market. Весь исходный код хранится в одном репозитории git.
Теперь я хочу опубликовать приложение на другом рынке приложений. Поскольку изменится только несколько файлов (лицензирование Android), я думаю о том, что будет лучшим способом архивировать это.
Я думаю, что одним из способов было бы создание библиотек Android. Но могу ли я заархивировать подобный эффект с помощью git, чтобы я имел два репозитория, которые разделяют одну кодовую базу и отличаются только несколькими файлами? Так как в настоящее время я не очень хорошо знаком с git, пожалуйста, объясните точно, что мне нужно делать или на что мне нужно обратить внимание.
Благодарю.
2 ответа
Использование одного git-репо для всех вариантов приложения - это то, как я храню свое. Например, одно из моих приложений имеет бесплатную и профессиональную версию и доступно как на рынке Android, так и в магазине приложений Amazon. В git у меня есть 3 ветки:
- мастер
- профессионал
- AMZN
Master - бесплатная версия, pro - платная версия на рынке Android, а amzn - бесплатная версия в магазине приложений Amazon.
Я делаю все свои изменения функций в мастере. Как только я буду готов выпустить релиз, я создаю и тестирую бесплатную версию, затем помечаю мастер с номером выпуска. Затем я переключаюсь на pro и запускаю git merge master, чтобы внести все новые изменения.
Поскольку pro является платной версией, когда я впервые получил ответвление от master, я закомментировал код, связанный с рекламой (так как это было всего несколько строк, я не думал, что рефакторинг был необходим), и изменил все строки, ссылаясь на "Некоторые App Pro "вместо просто" Некоторое приложение ".
Во время слияния у меня обычно нет никаких конфликтов, и это оригинальное изменение сохраняется. но если нет, то довольно легко разрешить конфликты и вернуть про-ветку рекламу.
Аналогично для ветви amzn, я изначально удалил все ссылки на рынок Google и произвел слияние с master, когда я буду готов к выпуску.
Тогда и для pro, и для amzn я могу собрать test и tag.
Чтобы сохранить уникальность имен пакетов (что я на самом деле не уверен, является ли это требованием или нет), я сначала взял свои действия и переместил их в новые пакеты, то есть com.whwhat.free.appname, com.whever.pro.appname..,
Установите новую ветку для новой версии вашего приложения, сделайте изменения, которые отличаются. Затем продолжите работу над основной веткой и перебазируйте вашу новую ветку, прежде чем выпускать обе.