Secrets Gradle eklentisi

Google, bir API anahtarını sürüm kontrol sisteminize eklememenizi önemle tavsiye eder. Bunun yerine, API anahtarını projenizin kök dizininde bulunan ancak sürüm kontrolünden hariç tutulan yerel bir secrets.properties dosyasında depolamanız ve ardından API anahtarını okumak için Android için Secrets Gradle Eklentisi'ni kullanmanız gerekir.

Android için Secrets Gradle Plugin, API anahtarı da dahil olmak üzere gizli anahtarları, sürüm kontrol sistemine eklenmemiş bir özellik dosyasından okur. Ardından eklenti, bu özellikleri Gradle tarafından oluşturulan BuildConfig sınıfında ve Android manifest dosyasında değişken olarak gösterir.

API anahtarına erişmek için Android için Secrets Gradle Plugin'i kullanmayla ilgili eksiksiz bir örnek için Android Studio projesi oluşturma başlıklı makaleyi inceleyin.

Yükleme ve kullanım

Android için Secrets Gradle eklentisini Google Haritalar projenize yüklemek üzere:

  1. Android Studio'da üst düzey build.gradle.kts veya build.gradle dosyanızı açın ve buildscript altındaki dependencies öğesine aşağıdaki kodu ekleyin.

    Kotlin

    buildscript {
        dependencies {
            classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1")
        }
    }

    Modern

    buildscript {
        dependencies {
            classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1"
        }
    }
  2. Modül düzeyindeki build.gradle.kts veya build.gradle dosyanızı açıp plugins öğesine aşağıdaki kodu ekleyin.

    Kotlin

    plugins {
        // ...
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }

    Modern

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }
  3. Modül düzeyindeki build.gradle.kts veya build.gradle dosyanızda targetSdk ve compileSdk değerlerinin 34 olarak ayarlandığından emin olun.
  4. Projenizi Gradle ile senkronize edin.
  5. Üst düzey dizininizdeki secrets.properties dosyasını açıp aşağıdaki kodu ekleyin. YOUR_API_KEY yerine API anahtarınızı girin. secrets.properties, bir sürüm kontrol sistemine kontrol edilmekten hariç tutulduğu için anahtarınızı bu dosyada saklayın.
    MAPS_API_KEY=YOUR_API_KEY
  6. local.defaults.properties dosyasını üst düzey dizininizde, secrets.properties dosyasıyla aynı klasörde oluşturun ve ardından aşağıdaki kodu ekleyin.

    MAPS_API_KEY=DEFAULT_API_KEY

    Bu dosyanın amacı, secrets.properties dosyası bulunamazsa API anahtarı için yedek bir konum sağlamak ve böylece derlemelerin başarısız olmasını önlemektir. Bu durum, uygulamayı secrets.properties dosyasını atlayan bir sürüm kontrol sisteminden klonladıysanız ve API anahtarınızı sağlamak için henüz yerel olarak bir secrets.properties dosyası oluşturmadıysanız ortaya çıkabilir.

  7. AndroidManifest.xml dosyanızda com.google.android.geo.API_KEY bölümüne gidin ve android:value attribute değerini güncelleyin. <meta-data> etiketi yoksa <application> etiketinin alt öğesi olarak oluşturun.
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />

    Not: com.google.android.geo.API_KEY, API anahtarı için önerilen meta veri adıdır. Bu ada sahip bir anahtar, Android için Haritalar SDK'sı da dahil olmak üzere Android platformundaki birden fazla Google Haritalar tabanlı API'de kimlik doğrulaması yapmak için kullanılabilir. API, geriye dönük uyumluluk için com.google.android.maps.v2.API_KEY adını da destekler. Bu eski ad yalnızca Android Maps API v2'de kimlik doğrulamasına olanak tanır. Bir uygulama, API anahtarı meta veri adlarından yalnızca birini belirtebilir. Her ikisi de belirtilirse API bir istisna oluşturur.

  8. Android Studio'da modül düzeyindeki build.gradle.kts veya build.gradle dosyanızı açıp secrets mülkünü düzenleyin. secrets mülkü yoksa ekleyin.

    propertiesFileName değerini secrets.properties, defaultPropertiesFileName değerini local.defaults.properties ve diğer özellikleri ayarlamak için eklentinin özelliklerini düzenleyin.

    Kotlin

    secrets {
        // To add your Maps API key to this project:
        // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file.
        // 2. Add this line, where YOUR_API_KEY is your API key:
        //        MAPS_API_KEY=YOUR_API_KEY
        propertiesFileName = "secrets.properties"
    
        // A properties file containing default secret values. This file can be
        // checked in version control.
        defaultPropertiesFileName = "local.defaults.properties"
    }
            

    Modern

    secrets {
        // To add your Maps API key to this project:
        // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file.
        // 2. Add this line, where YOUR_API_KEY is your API key:
        //        MAPS_API_KEY=YOUR_API_KEY
        propertiesFileName = "secrets.properties"
    
        // A properties file containing default secret values. This file can be
        // checked in version control.
        defaultPropertiesFileName = "local.defaults.properties"
    }
            

Sırada ne var?