تنصح Google بشدة بعدم وضع مفتاح واجهة برمجة التطبيقات في
نظام التحكّم في الإصدارات. بدلاً من ذلك، يجب تخزينه في ملف secrets.properties على الجهاز،
الذي يقع في الدليل الجذر لمشروعك ولكن تم استبعاده من التحكّم في الإصدارات، ثم
استخدام مكوّن Gradle الإضافي لنظام التشغيل Android المخصّص للسرّية
لقراءة مفتاح واجهة برمجة التطبيقات.
يقرأ المكوّن الإضافي Secrets Gradle لأجهزة Android الأسرار، بما في ذلك مفتاح واجهة برمجة التطبيقات، منملف خصائص لم يتم تسجيله في نظام التحكّم في الإصدارات. بعد ذلك، يعرِض المكوّن الإضافي هذه السمات
كمتغيّرات في فئة BuildConfig التي أنشأها Gradle وفي ملف بيان Android.
للحصول على مثال كامل لاستخدام المكوّن الإضافي Secrets Gradle لأجهزة Android للوصول إلى مفتاح واجهة برمجة التطبيقات، اطّلِع على مقالة إعداد مشروع في "استوديو Android".
التثبيت والاستخدام
لتثبيت المكوّن الإضافي Secrets Gradle لأجهزة Android في مشروعك على "خرائط Google"، اتّبِع الخطوات التالية:
-
في Android Studio، افتح ملف
build.gradle.ktsأوbuild.gradleالأولي وأضِف الرمز البرمجي التالي إلى عنصرdependenciesضمنbuildscript.Kotlin
plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.jetbrains.kotlin.android) apply false alias(libs.plugins.kotlin.compose) apply false alias(libs.plugins.secrets.gradle.plugin) apply false }
Groovy
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
-
افتح ملف
build.gradle.ktsأوbuild.gradleعلى مستوى الوحدة وأضِف رمز الربط التالي إلى عنصرplugins.Kotlin
plugins { // ... alias(libs.plugins.secrets.gradle.plugin) }
Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- في ملف
build.gradle.ktsأوbuild.gradleعلى مستوى الوحدة، تأكَّد من ضبطtargetSdkوcompileSdkعلى 34. - مزامنة مشروعك مع Gradle
-
افتح ملف
secrets.propertiesفي الدليل من المستوى الأعلى، ثم أضِف الرمز التالي: استبدِلYOUR_API_KEYبمفتاح واجهة برمجة التطبيقات. عليك تخزين مفتاحك في هذا الملف لأنّه تم استبعادsecrets.propertiesمن التحقّق من الملفات في نظام التحكّم في الإصداراتMAPS_API_KEY=YOUR_API_KEY
-
أنشئ ملف
local.defaults.propertiesفي الدليل على المستوى الأعلى، وهو المجلد نفسه الذي يتضمّن ملفsecrets.properties، ثم أضِف الرمز التالي.MAPS_API_KEY=DEFAULT_API_KEY
الغرض من هذا الملف هو توفير موقع احتياطي لمفتاح واجهة برمجة التطبيقات في حال عدم العثور على ملف
secrets.propertiesحتى لا تفشل عمليات الإنشاء. يمكن أن يحدث ذلك في حال استنساخ التطبيق من نظام التحكّم في الإصدارات الذي يحذفsecrets.propertiesولم تنشئ بعد ملفsecrets.propertiesعلى الجهاز لتوفير مفتاح واجهة برمجة التطبيقات. -
في ملف
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هو اسم البيانات الوصفية المقترَح لمفتاح واجهة برمجة التطبيقات. يمكن استخدام مفتاح بهذا الاسم للمصادقة مع عدة واجهات برمجة تطبيقات مستندة إلى "خرائط Google" على نظام التشغيل Android، بما في ذلك حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google" لنظام التشغيل Android. للتوافق مع الإصدارات السابقة، تتيح واجهة برمجة التطبيقات أيضًا استخدام الاسمcom.google.android.maps.v2.API_KEY. لا يسمح هذا الاسم القديم بالمصادقة إلا على الإصدار 2 من واجهة برمجة التطبيقات Android Maps API. يمكن للتطبيق تحديد اسم واحد فقط من أسماء البيانات الوصفية لمفتاح واجهة برمجة التطبيقات. في حال تحديد كليهما، تُعرِض واجهة برمجة التطبيقات استثناءً. -
في Android Studio، افتح ملف
build.gradle.ktsأوbuild.gradleعلى مستوى الوحدة وحرِّر السمةsecrets. إذا لم تكن السمةsecretsمتوفّرة، أضِفها.عدِّل سمات المكوّن الإضافي لضبط
propertiesFileNameعلىsecrets.propertiesوdefaultPropertiesFileNameعلىlocal.defaults.properties، وضبط أي سمات أخرى.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" }
Groovy
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" }
الخطوات التالية
- اطّلِع على صفحة مشروع المكوّن الإضافي Secrets Gradle لأجهزة Android على GitHub.
- اطّلِع على إعداد مشروع في "استوديو Android" للحصول على مثال كامل لاستخدام المكوّن الإضافي.