Google đặc biệt khuyến nghị bạn không nên kiểm tra khoá API trong hệ thống quản lý phiên bản. Thay vào đó, hãy lưu trữ khoá API trong một tệp secrets.properties cục bộ, nằm trong thư mục gốc của dự án nhưng không thuộc hệ thống quản lý phiên bản, sau đó sử dụng Trình bổ trợ Secrets Gradle cho Android để đọc khoá API.
Trình bổ trợ Secrets Gradle cho Android đọc các khoá bí mật, bao gồm cả khoá API, từ một tệp thuộc tính không được kiểm tra trong hệ thống quản lý phiên bản. Sau đó, trình bổ trợ sẽ hiển thị những thuộc tính đó dưới dạng các biến trong lớp BuildConfig do Gradle tạo và trong tệp kê khai Android.
Để xem ví dụ hoàn chỉnh về cách sử dụng Trình bổ trợ Secrets Gradle cho Android để truy cập vào một khoá API, hãy xem phần Thiết lập dự án Android Studio.
Cài đặt và sử dụng
Cách cài đặt Trình bổ trợ Secrets Gradle cho Android và lưu trữ khoá API:
-
Trong Android Studio, hãy mở tệp
build.gradle.ktshoặcbuild.gradlecấp cao nhất rồi thêm mã sau vào khốiplugins.Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false }
Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false }
-
Mở tệp
build.gradle.ktshoặcbuild.gradleở cấp mô-đun rồi thêm đoạn mã sau vào phần tửplugins.Kotlin
plugins { id("com.android.application") // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Groovy
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- Nếu bạn sử dụng Android Studio, hãy đồng bộ hoá dự án với Gradle.
-
Mở tệp
secrets.propertiestrong thư mục cấp cao nhất, sau đó thêm đoạn mã sau. Thay thếYOUR_API_KEYbằng khoá API của bạn. Hãy nhớ thêmsecrets.propertiesvào tệp.gitignore(hoặc loại trừ tệp này khỏi hệ thống quản lý phiên bản) để không đưa khoá API vào hệ thống quản lý phiên bản.MAPS_API_KEY=YOUR_API_KEY
-
Tạo tệp
local.defaults.propertiestrong thư mục cấp cao nhất, cùng thư mục với tệpsecrets.properties, rồi thêm mã sau.MAPS_API_KEY=DEFAULT_API_KEY
Mục đích của tệp này là cung cấp một vị trí sao lưu cho khoá API nếu không tìm thấy tệp
secrets.propertiesđể các bản dựng không bị lỗi. Điều này có thể xảy ra nếu bạn sao chép ứng dụng từ một hệ thống kiểm soát phiên bản bỏ quasecrets.propertiesvà bạn chưa tạo tệpsecrets.propertiescục bộ để cung cấp khoá API. -
Trong tệp
AndroidManifest.xml, hãy chuyển đếncom.google.android.geo.API_KEYrồi cập nhật thuộc tínhandroid:valuenhư sau:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />Lưu ý:
com.google.android.geo.API_KEYlà tên siêu dữ liệu được đề xuất cho khoá API. Bạn có thể dùng khoá có tên này để xác thực với nhiều API dựa trên Google Maps trên nền tảng Android, bao gồm cả Maps SDK cho Android. Để tương thích ngược, API này cũng hỗ trợ têncom.google.android.maps.v2.API_KEY. Tên cũ này chỉ cho phép xác thực với Android Maps API phiên bản 2. Một ứng dụng chỉ có thể chỉ định một trong các tên siêu dữ liệu khoá API. Nếu bạn chỉ định cả hai, API sẽ gửi một ngoại lệ. -
Trong Android Studio, hãy mở tệp
build.gradle.ktshoặcbuild.gradleở cấp mô-đun rồi chỉnh sửa thuộc tínhsecrets. Nếu thuộc tínhsecretskhông tồn tại, hãy thêm thuộc tính này.Chỉnh sửa các thuộc tính của trình bổ trợ để đặt
propertiesFileNamethành"secrets.properties", đặtdefaultPropertiesFileNamethành"local.defaults.properties"và đặt mọi thuộc tính khác.Kotlin
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the root directory (the same folder as the root 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 root directory (the same folder as the root 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" }
Bước tiếp theo
- Xem trang dự án GitHub Trình bổ trợ Secrets Gradle cho Android.
- Hãy xem phần Thiết lập dự án Android Studio để biết ví dụ đầy đủ về cách sử dụng trình bổ trợ này.