Продвижение приложения из бета-версии в производство в Google Play с использованием вариантов сборки

У меня следующая ситуация

сценарий

Часть 1. Приложение, работающее с Build Variants: debug, beta а также release следующим образом

buildTypes {
    debug {
        versionNameSuffix '-DEBUG'
        applicationIdSuffix '.debug'
        buildConfigField "String", "SERVER_URL", '"url local test"'
        debuggable true
        signingConfig signingConfigs.config
    }
    beta {
        versionNameSuffix '-BETA'
        buildConfigField "String", "SERVER_URL", '"url homologation"'
        signingConfig signingConfigs.config
    }
    release {
        buildConfigField "String", "SERVER_URL", '"url production"'
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.config
    }
}

И призыв к использованию String SERVER_URL указывая на текущий URL buildType selected, Смотри это

String URL = BuildConfig.SERVER_URL

Часть 2. Переключатель между Build Variants на Android Studio, как следует из изображения

Это работает абсолютно нормально для меня

вопрос

Часть 1. У меня есть приложение в Google Play, созданное в виде подписанного апка из варианта выпуска

Часть 2. Мне нужно поместить приложение в бета-тестирование Google Play, генерируя как подписанный apk из варианта BETA, например, указывая на url homologation

Часть 3. Когда владелец продукта заканчивает тестирование из бета-теста, мне нужно продвинуть это приложение в производство на Google Play Console

Вопрос

Основной вопрос: когда я продвигаю приложение из бета-версии в производство, оно автоматически указывает на url production от release variant или мне нужно будет сгенерировать еще один apk как signed apk from release variant?

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

Предупреждение! Если это неправильная работа, что лучше всего делать?

1 ответ

Решение

Если я понимаю ваш вопрос, это так:

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

Вы правы, это настоящая проблема. Есть два общих решения:

  • Вариант 1: не компилируйте строки вашего сервера в ваш APK. Вместо этого используйте сервис, такой как удаленная конфигурация Firebase, для динамического изменения сервера и других настроек вашей беты. Таким образом, APK не нужно менять
  • Вариант 2: Когда вы собираете свою бета-версию, пометьте свою ветку в своей системе контроля версий. Затем, когда вы хотите продвинуться в prod, создайте новый APK, но убедитесь, что вы используете размеченную ветку из системы контроля версий.

Лично я думаю, что рекомендовал бы вариант 1, но я знаю, что разные крупные профессиональные разработчики Android используют оба варианта.

Другие вопросы по тегам