קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
Google ממליצה מאוד לא להטמיע מפתח API במערכת בקרת הגרסאות. במקום זאת, כדאי לאחסן אותו בקובץ secrets.properties מקומי שנמצא בספריית הבסיס של הפרויקט, אבל לא נכלל במערכת בקרת הגרסאות. לאחר מכן, אפשר להשתמש בPlugin של Gradle ל-Secrets ל-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.
פותחים את הקובץ 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, כדי שה-builds לא יכשלו אם הקובץ secrets.properties לא נמצא. מצב כזה יכול לקרות אם משכפלים את האפליקציה ממערכת בקרת גרסאות שמשמיטה את secrets.properties, ועדיין לא יצרתם קובץ secrets.properties באופן מקומי כדי לספק את מפתח ה-API.
בקובץ AndroidManifest.xml, עוברים אל com.google.android.geo.API_KEY ומעדכנים את android:value attribute.
אם התג <meta-data> לא קיים, יוצרים אותו כצאצא של התג <application>.
הערה:com.google.android.geo.API_KEY הוא שם המטא-נתונים המומלץ למפתח ה-API. אפשר להשתמש במפתח עם השם הזה כדי לבצע אימות במספר ממשקי API שמבוססים על מפות Google בפלטפורמת Android, כולל Maps SDK for Android. מטעמי תאימות לאחור, ה-API תומך גם בשם com.google.android.maps.v2.API_KEY. השם הקודם מאפשר אימות רק ל-Android Maps API v2. אפליקציה יכולה לציין רק אחד משמות המטא-נתונים של מפתח ה-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_KEYpropertiesFileName="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_KEYpropertiesFileName="secrets.properties"// A properties file containing default secret values. This file can be// checked in version control.defaultPropertiesFileName="local.defaults.properties"}
[null,null,["עדכון אחרון: 2025-08-31 (שעון UTC)."],[[["\u003cp\u003eSecurely manage your Google Maps API key using the Secrets Gradle Plugin for Android, avoiding storage in version control.\u003c/p\u003e\n"],["\u003cp\u003eThe plugin reads your API key from a local \u003ccode\u003esecrets.properties\u003c/code\u003e file and makes it accessible in your \u003ccode\u003eBuildConfig\u003c/code\u003e and manifest.\u003c/p\u003e\n"],["\u003cp\u003eInstall the plugin by adding it as a dependency and applying it in your Gradle files, then configure it to locate your API key.\u003c/p\u003e\n"],["\u003cp\u003eUtilize the \u003ccode\u003elocal.defaults.properties\u003c/code\u003e file to provide a fallback API key for builds and prevent failures when the \u003ccode\u003esecrets.properties\u003c/code\u003e file is missing.\u003c/p\u003e\n"],["\u003cp\u003eRefer to the plugin's GitHub page and the setup guide for detailed information and a comprehensive example.\u003c/p\u003e\n"]]],[],null,["Google strongly recommends that you not check an [API key](/maps/documentation/android-sdk/get-api-key) into your\nversion control system. Instead, you should store it in a local `secrets.properties` file,\nwhich is located in the root directory of your project but excluded from version control, and then\nuse the [Secrets Gradle Plugin for Android](https://github.com/google/secrets-gradle-plugin)\nto read the API key.\n\nThe Secrets Gradle Plugin for Android reads secrets, including the API key, from\na properties file not checked into a version control system. The plugin then exposes those properties\nas variables in the Gradle-generated `BuildConfig` class and in the Android manifest file.\n\nFor a complete example of using the Secrets Gradle Plugin for Android to access an API key,\nsee [Set up an Android Studio project](/maps/documentation/android-sdk/config).\n\n\nInstallation and usage **Note:** See the [Secrets Gradle Plugin for Android](https://github.com/google/secrets-gradle-plugin) documentation on GitHub for the latest system requirements and installation instructions.\n\nTo install the Secrets Gradle Plugin for Android in your Google Maps project:\n\n1. In Android Studio, open your top-level `build.gradle.kts` or `build.gradle` file and add the following code to the `dependencies` element under `buildscript`. \n\n Kotlin \n\n ```yaml\n buildscript {\n dependencies {\n classpath(\"com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1\")\n }\n }\n ```\n\n Groovy \n\n ```yaml\n buildscript {\n dependencies {\n classpath \"com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1\"\n }\n }\n ```\n2. Open your module-level `build.gradle.kts` or `build.gradle` file and add the following code to the `plugins` element. \n\n Kotlin \n\n ```kotlin\n plugins {\n // ...\n id(\"com.google.android.libraries.mapsplatform.secrets-gradle-plugin\")\n }\n ```\n\n Groovy \n\n ```yaml\n plugins {\n // ...\n id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'\n }\n ```\n3. In your module-level `build.gradle.kts` or `build.gradle` file, ensure that `targetSdk` and `compileSdk` are set to 34.\n4. [Sync your project with Gradle](https://developer.android.com/studio/build#sync-files).\n 5. Open the `secrets.properties` file in your top-level directory, and then add the following code. Replace `YOUR_API_KEY` with your API key. Store your key in this file because `secrets.properties` is excluded from being checked into a version control system. **Note:** If the `secrets.properties` file does not exist, create it in the same folder as the `local.properties` file. \n\n ```scdoc\n MAPS_API_KEY=YOUR_API_KEY\n ```\n6. Create the `local.defaults.properties` file in your top-level directory, the same\n folder as the `secrets.properties` file, and then add the following code.\n\n **Note:** Enter the code as shown. Don't replace `DEFAULT_API_KEY` with your API key. \n\n ```scdoc\n MAPS_API_KEY=DEFAULT_API_KEY\n ```\n\n The purpose of this file is to provide a backup location for the API key if the\n `secrets.properties` file is not found so that builds don't fail. This can happen if\n you clone the app from a version control system which omits `secrets.properties` and\n you have not yet created a `secrets.properties` file locally to provide your\n API key.\n7. In your `AndroidManifest.xml` file, go to `com.google.android.geo.API_KEY` and update the `android:value attribute`. If the `\u003cmeta-data\u003e` tag does not exist, create it as a child of the `\u003capplication\u003e` tag. \n\n ```genshi\n \u003cmeta-data\n android:name=\"com.google.android.geo.API_KEY\"\n android:value=\"${MAPS_API_KEY}\" /\u003e\n ```\n\n **Note:**\n `com.google.android.geo.API_KEY` is the recommended metadata name\n for the API key. A key with this name can be used to authenticate to multiple\n Google Maps-based APIs on the Android platform, including the\n Maps SDK for Android. For backwards compatibility, the API also\n supports the name `com.google.android.maps.v2.API_KEY`. This legacy\n name allows authentication to the Android Maps API v2 only. An application can\n specify only one of the API key metadata names. If both are specified, the API\n throws an exception.\n8. In Android Studio, open your module-level `build.gradle.kts` or\n `build.gradle` file and edit the `secrets` property. If the\n `secrets` property does not exist, add it.\n\n Edit the properties of the plugin to set `propertiesFileName` to\n `secrets.properties`, set `defaultPropertiesFileName` to\n `local.defaults.properties`, and set any other properties. \n\n Kotlin \n\n ```kotlin\n secrets {\n // To add your Maps API key to this project:\n // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file.\n // 2. Add this line, where YOUR_API_KEY is your API key:\n // MAPS_API_KEY=YOUR_API_KEY\n propertiesFileName = \"secrets.properties\"\n\n // A properties file containing default secret values. This file can be\n // checked in version control.\n defaultPropertiesFileName = \"local.defaults.properties\"\n }\n \n ```\n\n Groovy \n\n ```groovy\n secrets {\n // To add your Maps API key to this project:\n // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file.\n // 2. Add this line, where YOUR_API_KEY is your API key:\n // MAPS_API_KEY=YOUR_API_KEY\n propertiesFileName = \"secrets.properties\"\n\n // A properties file containing default secret values. This file can be\n // checked in version control.\n defaultPropertiesFileName = \"local.defaults.properties\"\n }\n \n ```\n\nWhat's next\n\n- View the [Secrets Gradle Plugin for Android](https://github.com/google/secrets-gradle-plugin) GitHub project page.\n- View [Set up an Android Studio project](/maps/documentation/android-sdk/config) for a complete example of using the plugin."]]