Как я могу создать несколько сборок приложений Android для бета-тестеров и для Market?

#android #build

#Android #сборка

Вопрос:

Я хотел бы создать 2 сборки моего приложения для Android:

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

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

Я использую готовый build.xml файл, который Android создал для меня прямо сейчас.

Спасибо!

Ответ №1:

Когда у вас есть цепочка автоматической сборки (т. Е. вы запускаете все через ant), вы можете создать один java-файл, содержащий эту переменную, из ant run. И здесь вы можете установить переменную в зависимости от целевой среды. Затем сборка скомпилирует этот файл со всеми остальными и упакует его.

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

Комментарии:

1. Хм, это сработало бы, но с этим есть некоторые проблемы. Например, как бы вы запустили код из IDE. Кроме того, есть ли у вас какой-либо пример кода или указания на особенности того, как это можно сделать?

2. В среде IDE файл сохраняется, а переменной присваивается одно значение. Чтобы оно компилировалось. По сути, это 2-й вариант. У Ant есть задача замены, которую можно использовать — см. ant.apache.org/manual/Tasks/replace.html