Google ממליצה מאוד לא לבדוק מפתח API ב
במערכת לניהול גרסאות. במקום זאת, כדאי לאחסן אותו בקובץ secrets.properties
מקומי,
שנמצא בתיקיית השורש של הפרויקט אבל לא נכלל בניהול הגרסאות,
שימוש בפלאגין של Secrets Gradle ל-Android
כדי לקרוא את מפתח ה-API.
הפלאגין Secrets Gradle ל-Android קורא סודות, כולל מפתח ה-API, החל מ-
קובץ מאפיינים שלא נבדק במערכת לניהול גרסאות. לאחר מכן הפלאגין חושף את המאפיינים האלה
בתור משתנים במחלקה BuildConfig
שנוצרה על ידי Gradle, ובקובץ המניפסט של Android.
הנה דוגמה מלאה לשימוש בפלאגין של Secrets Gradle ל-Android כדי לגשת למפתח API: מידע נוסף זמין במאמר הגדרת פרויקט Android Studio.
התקנה ושימוש
כדי להתקין את הפלאגין Secrets Gradle ל-Android בפרויקט במפות Google:
-
ב-Android Studio, פותחים את
build.gradle.kts
אוbuild.gradle
ברמה העליונה ולהוסיף את הקוד הבא לרכיבdependencies
בקטעbuildscript
Kotlin
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
.Kotlin
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
בספרייה שברמה העליונה, ואז מוסיפים את באמצעות הקוד הבא. מחליפים אתYOUR_API_KEY
במפתח ה-API שלכם. אחסון המפתח בקובץ הזה כיsecrets.properties
לא נכלל בבדיקה לניהול גרסאות המערכת.MAPS_API_KEY=YOUR_API_KEY
- שומרים את הקובץ.
-
יוצרים את הקובץ
local.defaults.properties
בספרייה שברמה העליונה, אותה בתיקייה בתור הקובץsecrets.properties
, ואז מוסיפים את הקוד הבא.MAPS_API_KEY=DEFAULT_API_KEY
מטרת הקובץ הזה היא לספק מיקום לגיבוי של מפתח ה-API אם קובץ
secrets.properties
לא נמצא כדי שגרסאות ה-build לא ייכשלו. הדבר יכול להתרחש אם משכפלים את האפליקציה ממערכת לניהול גרסאות שמושמטת מ-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, כולל 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
, ומגדירים מאפיינים אחרים.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" // 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 ל-Android דף הפרויקט ב-GitHub.
- הדוגמה המלאה לשימוש במאמר הגדרת פרויקט ב-Android Studio יישומי פלאגין.