گوگل اکیداً توصیه می کند که یک کلید API را در سیستم کنترل نسخه خود بررسی نکنید. در عوض، باید آن را در یک فایل secrets.properties
محلی که در دایرکتوری ریشه پروژه شما قرار دارد اما از کنترل نسخه حذف شده است، ذخیره کنید و سپس از افزونه Secrets Gradle برای اندروید برای خواندن کلید API استفاده کنید.
پلاگین Secrets Gradle برای اندروید اسرار، از جمله کلید API را از یک فایل ویژگی که در سیستم کنترل نسخه بررسی نشده است، می خواند. سپس این افزونه آن ویژگی ها را به عنوان متغیرهایی در کلاس BuildConfig
تولید شده توسط Gradle و در فایل مانیفست اندروید نمایش می دهد.
برای مثال کامل استفاده از افزونه Secrets Gradle برای Android برای دسترسی به یک کلید API، به راه اندازی پروژه Android Studio مراجعه کنید.
نصب و استفاده
برای نصب افزونه Secrets Gradle برای اندروید در پروژه Google Maps:
- در Android Studio، فایل
build.gradle.kts
یاbuild.gradle
سطح بالای خود را باز کنید و کد زیر را به عنصرdependencies
در زیرbuildscript
اضافه کنید.کاتلین
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
شیار
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
- فایل
build.gradle.kts
یاbuild.gradle
سطح ماژول خود را باز کنید و کد زیر را به عنصرplugins
اضافه کنید.کاتلین
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
شیار
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- در فایل
build.gradle.kts
یاbuild.gradle
در سطح ماژول، مطمئن شوید کهtargetSdk
وcompileSdk
روی 34 تنظیم شده اند. - فایل را ذخیره کنید و پروژه خود را با Gradle همگام کنید .
- فایل
secrets.properties
را در دایرکتوری سطح بالای خود باز کنید و سپس کد زیر را اضافه کنید. کلید API خود را جایگزینYOUR_API_KEY
کنید. کلید خود را در این فایل ذخیره کنید زیراsecrets.properties
از بررسی سیستم کنترل نسخه حذف شده است.MAPS_API_KEY=YOUR_API_KEY
- فایل را ذخیره کنید.
فایل
local.defaults.properties
را در پوشه سطح بالای خود، همان پوشه فایلsecrets.properties
ایجاد کنید و سپس کد زیر را اضافه کنید.MAPS_API_KEY=DEFAULT_API_KEY
هدف این فایل ارائه یک مکان پشتیبان برای کلید API در صورت یافت نشدن فایل
secrets.properties
است تا بیلدها خراب نشوند. اگر برنامه را از یک سیستم کنترل نسخه کهsecrets.properties
را حذف می کند و هنوز فایلsecrets.properties
را به صورت محلی برای ارائه کلید API خود ایجاد نکرده اید، ممکن است اتفاق بیفتد.- فایل را ذخیره کنید.
- در فایل
AndroidManifest.xml
خود، بهcom.google.android.geo.API_KEY
بروید وandroid:value attribute
به روز کنید. اگر تگ<meta-data>
وجود ندارد، آن را به عنوان فرزند تگ<application>
ایجاد کنید.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
توجه:
com.google.android.geo.API_KEY
نام ابرداده توصیه شده برای کلید API است. کلیدی با این نام میتواند برای احراز هویت چندین API مبتنی بر نقشههای Google در پلتفرم Android، از جمله Maps SDK برای Android استفاده شود. برای سازگاری به عقب، API از نامcom.google.android.maps.v2.API_KEY
نیز پشتیبانی می کند. این نام قدیمی فقط به Android Maps API نسخه 2 امکان احراز هویت را می دهد. یک برنامه کاربردی می تواند تنها یکی از نام های ابرداده کلید API را مشخص کند. اگر هر دو مشخص شده باشند، API یک استثنا ایجاد می کند. در Android Studio، فایل
build.gradle.kts
یاbuild.gradle
در سطح ماژول خود را باز کنید و ویژگیsecrets
را ویرایش کنید. اگر ویژگیsecrets
وجود ندارد، آن را اضافه کنید.ویژگی های افزونه را ویرایش کنید تا
propertiesFileName
را رویsecrets.properties
تنظیم کنید،defaultPropertiesFileName
را رویlocal.defaults.properties
تنظیم کنید و هر ویژگی دیگری را تنظیم کنید.کاتلین
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" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
شیار
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" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
بعدش چی
- صفحه پروژه Secrets Gradle Plugin برای اندروید GitHub را مشاهده کنید.
- برای مثال کامل استفاده از افزونه ، راه اندازی پروژه Android Studio را مشاهده کنید.