Быстро переключаться между бета и релизом - PullRequest
0 голосов
/ 09 октября 2018

Я занимаюсь разработкой приложения для Android в ситуации, когда мне хотелось бы:

  • Тестеры (не разработчики, не обязательно хорошо разбирающиеся в компьютерах, но я знаю их электронные письма от игрового магазина), чтобы иметь возможностьбыстрое переключение между бета-версией и стабильной версией того же приложения
  • Для предоставления обновлений как стабильной, так и бета-версии через игровой магазин
  • Ограниченный доступ к бета-версии.Релизная версия уже общедоступна в магазине игр.

До сих пор я в основном сосредоточился на способах получить две версии одного и того же приложения на устройстве Android.Я уже рассмотрел несколько вариантов, но я хотел бы получить совет относительно того, как действовать дальше.Я мог бы:

  • Создать «новое» приложение с добавлением beta к его имени, с другим значком, чтобы отличить его от тестеров, но в основном те же самые внутренние компоненты.Он может распространяться в виде закрытого альфа / внутреннего теста через игровой магазин.Я бы хотел этого избежать, так как мне будет сложнее управлять версиями - когда я хочу рекламировать бета-версию, мне придется вручную изменить значок и название приложения
  • СоздатьСтроительный аромат.Я не совсем уверен, насколько способны варианты сборки или насколько хорошо они поддерживаются.
  • Используйте закрытую альфа / внутреннюю тестовую программу магазина Google Play.Это далеко не идеально, потому что требуются значительные усилия, чтобы отказаться от тестирования программ.Вам нужно перейти на URL, нажать кнопку, удалить приложение и переустановить приложение.
  • Используйте приложение, например app cloner , чтобы клонировать стабильную версию и переименовать ее, а затем распространитьбета через игровой магазин.Это не идеально, потому что обновление версии выпуска требует вмешательства разработчика.

примечание: когда я говорю закрытый альфа-тест и внутренний тест, я имею в виду закрытый альфа-тест и внутренний тест Google Play (доступный через разработчика Googleконсоль), а не их более общие определения.Когда я говорю «бета», я имею в виду более общее определение - предварительную версию.

Редактировать: следуя совету на этой записи, я успешно установил два приложения, но всякий раз, когда пыталсяоткройте один, я бы получил диалог выбора, как это information redacted to protect the identity of the app

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Чтобы обратиться к последней точке и снимку экрана, переключитесь с использования основанных на строках интентов на использование основанных на классах интентов в своем приложении.Под Intents на основе строк я подразумеваю Intents, построенный с public Intent (String action).Например,

startActivity("com.myOrganization.NEXT_ACTIVITY");

(для работы этих строк их нужно объявить в манифесте с тегом)

Заменить их конструктором на основе классов с сигнатурой функции public Intent (Context packageContext, Class<?> cls),Например:

startActivity(currentActivity.this, nextActivity.class)

Строковые намерения предназначены для использования внешними службами, например, открытием веб-браузера для сообщения об ошибке.В этом случае вы не знаете, каково имя класса java веб-браузера (то есть это может быть firefox.class или chrome.class).С вашим приложением вы знаете имена классов всех действий, которые хотите запустить, поэтому просто используйте их.Из документации android об основанном на классе конструкторе Intent

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

Использование конструктора на основе классов имеет дополнительное преимущество, заключающееся в упрощении рефакторинга в Android Studio.

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

0 голосов
/ 09 октября 2018

Google Play уже дает вам все, что вам нужно для распространения, и альфа / бета / внутреннюю версию одновременно с версией вашего продукта.

Если я понимаю, ваша проблема в том, что вы хотите, чтобы ваши тестеры имелиобе версии приложения одновременно на одном устройстве.Вы НЕ МОЖЕТЕ сделать это с вариантами, которые вы рассмотрели.Даже если вы измените имя и значок, единственной важной вещью является идентификатор приложения.Если вы не измените идентификатор приложения, вы не сможете установить его дважды.С другой стороны, если вы измените имя пакета, оно будет считаться совершенно новым приложением, поэтому вам придется создать новое приложение в Google Play.

Я бы порекомендовал использовать варианты сборки (разновидности), которыекстати полностью поддерживаются.Таким образом, вы можете легко изменить имя пакета (и имя приложения, чтобы его было легче понять).Конечно, как я упоминал ранее, вы должны создать новое приложение в Google Play или распространить его другим способом.

Градиент для нового варианта должен выглядеть примерно так, как в приложении gradle:

buildTypes {
    release {
    ....
    }
    qa { //your new variant name
       applicationIdSuffix ".qa" //this will append a ".qa" to your app id
       versionNameSuffix "-qa" //this will append a "-qa" to your app name
       ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...