Есть 2 способа сделать это:
1 / По string
ресурсу, который вы хотите
Добавьте файл ресурса с именем secret_keys.xml
или любое другое имя, чтобы отделить его от файла других ресурсов. Поместите свои ключи, конечные точки API здесь как обычный строковый ресурс, не забудьте добавить translatable="false"
, если вы не хотите связываться с локализацией.
Поместите этот файл в app/debug/res/values/
. Создайте новую папку debug
, если она не существует. Сделайте то же самое для staging
или release
, Android автоматически будет использовать папку с тем же именем, что и тип сборки.
2 / По properties
файлам
Создайте 3 файла .properties и поместите ключи внутри:
HOST="http://api.blablabla.com"
CLIENT_ID="hahaha"
CLIENT_SECRET="hehehe"
Свяжите его с переменной BuildConfig
в своем приложении build.gradle
, сделайте то же самое для других типов сборки:
def getPropertiesFile = { path ->
Properties properties = new Properties()
properties.load(new FileInputStream(file(path)))
return properties
}
android {
...
buildTypes {
debug {
...
getPropertiesFile('./config/development.properties').each { p ->
buildConfigField 'String', p.key, p.value
}
}
...
}
}
В вашем приложении просто позвоните BuildConfig.HOST
, чтобы получить желаемую строку
UPDATE
Игнорировать эти файлы конфигурации в .gitignore
:
app/config
secret_keys.xml