Android Studio: как создать второй тип сборки отладки
Я хочу создать второй тип сборки, который должен работать точно так же, как уже существующий тип отладки. В настоящее время у меня есть два типа сборки: debug и release. Отладочную можно запускать одним щелчком мыши и автоматически подписываться с хранилищем отладки.
Я вручную компилирую сборку выпуска с помощью мастера Build -> Generate signed APK
.
Итак, чтобы клонировать тип сборки отладки, я сначала добавил второй тип сборки с именем "local" в файл приложения build.graddle:
buildTypes {
...
debug {
debuggable true
minifyEnabled false
}
local {
debuggable true
minifyEnabled false
}
}
Затем я создал app/src/local/res
и добавил некоторые файлы.
Затем я выполняю повторную процедуру gradle и выбираю новый тип сборки на левой вкладке:
![вкладка типа сборки]()
Наконец, я нажимаю кнопку запуска, и я ожидал, что она просто сработает. Эта статья справки IntelliJ говорит, что настройка подписи отладки по умолчанию:
Это означает, что если вы не настроите артефакт вручную и выберите параметр развертывания по умолчанию APK в конфигурации "Запуск/отладка": Диалоговое окно Android Application, IntelliJ IDEA будет использовать предопределенные значения в сертификате для сгенерированного
Вместо этого показано это диалоговое окно:
![запустить диалог]()
Когда я нажимаю кнопку "Исправить", он открывает диалог настройки подписки для всего модуля приложения. Тем не менее, я не хочу подписывать этот apk для выпуска, мне нужно, чтобы он был подписан с сертификатом отладки. Также я заметил, что была создана новая задача assembleLocal
gradle, но она генерирует невыровненный apk. В этой папке я вижу, что регулярные отладочные apks генерируются правильно в их неизмененных и окончательных версиях.
Как я могу просто клонировать тип сборки отладки?
Ответы
Ответ 1
Вы можете указать в файле build.gradle
, который signingConfig
должен использоваться с buildType
.
Чтобы подписать с помощью того же signingConfig
в качестве отладки по умолчанию buildType
, используйте следующее:
buildTypes {
local {
signingConfig signingConfigs.debug
}
/* NOTE: the debug block is not required because it is a default
* buildType configuration; all of its settings are defined implicitly
* by Android Studio behind the scenes.
*/
}
Если вы предпочитаете использовать настраиваемое хранилище ключей, расположенное в вашей локальной системе, используйте вместо этого следующее:
signingConfigs {
local {
storeFile file("/path/to/custom.keystore")
storePassword "password"
keyAlias "MyLocalKey"
keyPassword "password"
}
}
buildTypes {
local {
signingConfig signingConfigs.local
}
}
Ответ 2
Кроме того, вы можете сделать свой тип сборки похожим на debug, используя:
initWith(buildTypes.debug)
Вот пример:
...
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField 'String', 'URL_API_BASE_SERVICE', '"http://theidasworld.com"'
}
debug {
versionName 'APP BETA'
buildConfigField "Integer", "PIN", "0000"
buildConfigField 'String', 'URL_API_BASE_SERVICE', '"http://debug.theidasworld.com"'
}
inspection {
initWith(buildTypes.debug) // keep versionName and PIN from 'debug'
buildConfigField 'String', 'URL_API_BASE_SERVICE', '"http://inspection.theidasworld.com"'
}
}
...
Ответ 3
Другим способом может быть использование ароматов, например так:
productFlavors {
app1 {}
app2 {}
}