Android Studio'da, yapı türleri ve tatları kavramı var ve ihtiyacınız olanı almak için bunları kullanabilirsiniz. Oluştur türleri, işlevsel olarak aynı olan, ancak hata ayıklama kodunda farklılık gösterebilecek uygulamanın farklı sürümleridir. Varsayılan olarak, tüm Android Gradle projelerinde hata ayıklama ve sürüm oluşturma sürümleri var.
Tatlar, uygulamanızın işlevsel olarak farklı sürümleridir; örneğin, ücretsiz ve ücretli olabilirsiniz. Varsayılan olarak, Android Gradle projelerinizde herhangi bir lezzet yoktur, ancak bunları ekleyebilirsiniz.
Yapı türleri ve tatlar, bir yapı oluşturduğunuzda ( varyant olarak adlandırılır) birleştirilir; Bu örnekte, ücretsizDebug, freeRelease, paidDebug ve paidRelease yapıları oluşturabilirsiniz.
Yapı sistemi, her türdeki/çeşitteki/varyanttaki birçok şeyi kolayca geçersiz kılmanıza olanak tanır; Yapabileceğiniz şeylerden biri, AndroidManifest.xml dosyasının bölümlerini geçersiz kılmaktır. Yapı sistemi, belirli bir varyantı oluşturduğunda, tezahürlerin farklı uygun bitlerini bir ana tezahürle birleştirir.
Elinizdeki bu arka planla, uygulamanızın sürüm sürümüne karşı hata ayıklama sürümünde farklı bir API anahtarı olmasını isteyebilirsiniz. Hata ayıklama sürümü, günlük gelişiminizde, hata ayıklamada ve test etmede kullanacağınız şeydir ve yayınlama sürümü, kullanıcılara dağıttığınız sürümdür.
src/main
ana uygulamanın AndroidManifest.xml dosyasında Google Maps API anahtarı koymak yok Bunu yapmak için; bunun yerine iki yeni klasör ekleyin,
src/debug
ve
src/release
ve
AndroidManifest.xml dosyalarını buraya ekleyin. Bu yeni manifestolarda tam bilgi içermez, sadece bu özel varyant için neyin gerekli olduğu konusunda benzersiz olan şeyler. Kaynak dosyalarınız aşağıdaki gibi görünecektir:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="[MY_DEV_KEY]" />
</manifest>
ve src/release/AndroidManifest.xml
bu olacak:

Sizin src/debug/AndroidManifest.xml
dosyası bu içerecektir
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="[MY_PROD_KEY]" />
</manifest>
yinelemek için, yapmayın src/main/AndroidManifest.xml
dosyasına herhangi bir API anahtarı koyun.
Herhangi bir nedenle, farklılaştırmak için yapı türleri kullanmak istemiyorsanız, dev ve prod tatlarını ayarlayabilir ve bunun yerine bölebilirsiniz; manifesto geçersiz kılma aynı şekilde çalışır. Size Bu şekilde
android {
.. .. ...
buildTypes {
debug {
resValue "string", "google_maps_api_key", "[YOUR DEV KEY]"
}
release {
resValue "string", "google_maps_api_key", "[YOUR PROD KEY]"
}
}
}
Ve AndroidManifest.xml
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_maps_api_key"/>
yılında
build.gradle sadece:
Tam olarak ihtiyacım olan şey, iyi soru. – Radu