Można to osiągnąć za pomocą smaków produktu.
Dla osiągnięcia tego wymogu:
Przede wszystkim Tworzenie 2 pliki w folderze app projektu powiedzieć development.props i production.props. Lub możesz dodać te 2 pliki w pakiecie w folderze aplikacji powiedz config.
Zasadniczo, te 2 pliki zawierają klucze i wartości. Ten klucz jest taki sam dla obu plików. Ale ich wartości są różne. Te pliki zawierają jeden klucz, powiedz "SERVER_URL" i jego wartość. Byłoby to być napisane tak:
SERVER_URL =”Server_url_value”
W tym przypadku, tylko adres URL jest inna. Dlatego dodałem tylko jedną parę klucz-wartość w pliku rekwizytów. Możesz dodać więcej.
Następnie utwórz ProductFlavours w pliku build.gradle aplikacji, powiedz o rozwoju i produkcji. Teraz dostęp do różnych plików rekwizyty zawierające adresy URL w swoich smakach correseponding tak:
productFlavors {
development {
getProps('./config/development.props').each { p ->
buildConfigField 'String', p.key, p.value
}
}
production {
getProps('./config/production.props').each { p ->
buildConfigField 'String', p.key, p.value
}
}
}
def getProps(path) {
Properties props = new Properties()
props.load(new FileInputStream(file(path)))
return props
}
teraz, dla każdego smaku, nie jest typem budować i to BuildType dodaje się w app build.gradle. Na przykład typ kompilacji to Debugowanie i wydanie. Mam dwa smaki, tj. Rozwój i produkcję. W związku z tym zadanie gradle zostanie utworzone przy użyciu zarówno typu smaku, jak i typu kompilacji:
assemble{flavourName}{BuildType}
Teraz należy wpisać tylko te polecenia. Wygenerowałby wymagany plik APK z odpowiednim adresem URL. Polecenia są następujące:
./gradlew assembleProductionRelease
wygeneruje kompilację wydania z produkcyjnym adresem URL.
./gradlew assembleDevelopmentDebug
generuje kompilację debugowania za pomocą adresu URL programowania.
./gradlew assembleProductionDebug
generuje kompilację debugowania z produkcyjnym adresem URL.
./gradlew assembleDevelopmentRelease
wygeneruje kompilację wydania z adresem rozwojowym.
Najlepsze trzy zadanie gradle byłoby bardzo pomocne. Ale ostatnie zadanie wygenerowałoby kompilację wydania z deweloperskim adresem URL. Ale nie jest to zalecane. Tak, powinniśmy przestać dewelopera do wykonania tego zadania tj ./gradlew assembleDevelopmentRelease
teraz, aby ograniczyć wywoływacz do generowania kompilacji uwolnienia używając URL Development, dodać ten fragment w swojej aplikacji pliku build.gradle:
android.variantFilter { variant ->
if(variant.buildType.name.equals('release')
&& variant.getFlavors().get(0).name.equals('development')) {
variant.setIgnore(true);
}
}
Teraz, gdybyśmy spróbuj wykonać zadanie tj. ./gradlew DevelopmentRelease
. Gradle przestałby generować kompilację i rzucił wyjątek i powiedziałby: To zadanie assembleDevelopmentRelease nie zostało znalezione w projekcie głównym.
Zamiast tworzyć nowy smak produktu, nie możesz dodać do typu debugowania lub wydania wersji? – vinnybad