Поддержание и бесплатные и про версии приложения

Я хочу создать Pro версия моего приложения для Android, и задавался вопросом, как структурировать мой репозиторий.

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

Pro версия будет иметь дополнительные функции и будет без рекламы, так например, Я не хочу включать библиотеки AdMob в про версию.

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

Править: Я думаю, что нашел лучшее решение (для моего приложения) в этом потоке: http://groups.google.com/group/android-developers/browse_thread/thread/4ad3d67f735f16d7/948b4f9eee2490a3

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

20
задан Marek Stój 27 March 2010 в 18:56
поделиться

3 ответа

Я бы посоветовал не поддерживать две ветки, но иметь переключатели времени выполнения или времени компиляции, чтобы бесплатно отключить функцию PRO версия. Вы даже можете удалить ненужные библиотеки DLL при сборке.

Поддержание двух веток означает устранение проблем в двух местах, что станет еще большей проблемой, поскольку ветви неизбежно расходятся.

11
ответ дан 30 November 2019 в 00:19
поделиться

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

Я использую git для своего репозитория. Создавать и поддерживать ветки очень просто. У меня есть главный репозиторий "pro" и "бесплатная" ветка. Все изменения кода я вношу в мастер. Моя «бесплатная» ветка отличается только теми изменениями, которые вызывают «бесплатное» поведение. Когда я заканчиваю вносить изменения в код, я фиксирую их в главной ветке, затем переключаюсь на бесплатную ветку и использую команду «rebase», чтобы догнать мастер.

Он откатывает изменение, которое заставляет его вести себя как «бесплатная» версия, применяет изменения, которые я сделал, к мастеру, а затем повторно применяет «бесплатные» изменения.

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

15
ответ дан 30 November 2019 в 00:19
поделиться

Иметь одну версию с public static final boolean IS_PRO, которая бы определяла поведение free/pro.

EDIT:
. Про пакеты. Скажем, все ваши классы находятся в com.myapp.android.free.
Тогда в AndroidManifest.xml вы объявляете package="com.myapp.android" для платной версии и package="com.myapp.android.free" для бесплатной.
Если вы используете полные имена для действий, служб и т.д., вам больше ничего не придется менять.

Я бы не стал удалять неиспользуемые библиотеки из платной версии. Если вы это сделаете, вам придется делать это вручную.

1
ответ дан 30 November 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: