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

Как можно создать отдельную установку игры для тестирования новых функций, не затрагивая уже установленную версию apk на устройстве?
  • 2 февраля 2024 г. 9:12
Ответы на вопрос 2
Для создания отдельной APK, которая не будет заменять уже установленное приложение на устройстве, необходимо изменить идентификатор приложения (applicationId в терминах Android или package name в общем смысле). Это можно сделать в файле `build.gradle` вашего приложения в модуле app. Чтобы создать отдельную версию, например для тестирования, можно использовать флейворы (flavors) или добавить суффикс к существующему идентификатору.

Пример настройки флейворов в `build.gradle`:

```groovy
android {
    ...
    flavorDimensions "default"

    productFlavors {
        dev {
            dimension "default"
            applicationIdSuffix ".dev"
            versionNameSuffix "-dev"
        }
        
        prod {
            dimension "default"
        }
    }
    ...
}
```

В этом примере мы создаем два флейвора: `dev` для разработки и тестирования, и `prod` для продуктовой версии приложения. У флейвора `dev` мы добавляем суффикс `.dev` к `applicationId` и суффикс `-dev` к `versionName`. Это делает идентификатор приложения уникальным, и оно установится отдельно от продуктовой версии приложения.

После настройки флейворов, вы можете выбрать, какой вариант сборки использовать, в Android Studio перед запуском или используя команду для сборки:

```bash
./gradlew installDevDebug
```

или для флейвора prod:

```bash
./gradlew installProdRelease
```

Также, если вы только нуждаетесь в временном решении и не хотите создавать флейворы, можно просто изменить `applicationId` в `defaultConfig` на что-то другое:

```groovy
android {
    ...
    defaultConfig {
        applicationId "com.example.myapp.dev"
        ...
    }
    ...
}
```

Если вы не хотите менять `applicationId` основного приложения, вы можете использовать отдельный `buildType` со своим суффиксом идентификатора:

```groovy
android {
    ...
    buildTypes {
        debug {
            applicationIdSuffix ".debug"
            ...
        }
        
        release {
            ...
        }
    }
    ...
}
```

Важно помнить, что смена `applicationId` также потребует изменений в настройках доступа к сервисам Google Play (если они используются), поскольку идентификатор приложения используется для идентификации приложения в этих сервисах.
Измените bundle id и делайте билд.
Похожие вопросы