Bạn không nên kiểm tra khoá API vào hệ thống quản lý phiên bản. Thay vào đó, bạn nên lưu trữ khoá này trong tệp secrets.properties
cục bộ, nằm trong thư mục gốc của dự án nhưng bị loại trừ khỏi tính năng kiểm soát phiên bản, sau đó sử dụng Trình bổ trợ Gradle cho Android để đọc khoá API.
Trình bổ trợ Secrets Gradle cho Android đọc các thông tin bảo mật, bao gồm cả khoá API, từ một tệp thuộc tính không được kiểm tra vào hệ thống quản lý phiên bản. Sau đó, trình bổ trợ sẽ hiển thị các thuộc tính đó dưới dạng biến trong lớp BuildConfig
do Gradle tạo và trong tệp kê khai Android.
Để xem ví dụ đầy đủ về cách sử dụng Trình bổ trợ Secrets Gradle cho Android để truy cập khoá API, hãy xem phần Thiết lập dự án Android Studio.
Cách cài đặt và sử dụng
Cách cài đặt Trình bổ trợ Secrets Gradle cho Android trong dự án Google Maps:
-
Trong Android Studio, hãy mở tệp
build.gradle.kts
hoặcbuild.gradle
cấp cao nhất và thêm mã sau vào phần tửdependencies
trongbuildscript
.Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
Groovy
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
-
Mở tệp
build.gradle.kts
hoặcbuild.gradle
ở cấp mô-đun và thêm đoạn mã sau vào phần tửplugins
.Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- Trong tệp
build.gradle.kts
hoặcbuild.gradle
ở cấp mô-đun, hãy đảm bảo rằng bạn đặttargetSdk
vàcompileSdk
thành 34. - Đồng bộ hoá dự án với Gradle.
-
Mở tệp
secrets.properties
trong thư mục cấp cao nhất, sau đó thêm mã sau. Thay thếYOUR_API_KEY
bằng khoá API của bạn. Lưu trữ khoá của bạn trong tệp này vìsecrets.properties
không được đưa vào hệ thống quản lý phiên bản.MAPS_API_KEY=YOUR_API_KEY
-
Tạo tệp
local.defaults.properties
trong thư mục cấp cao nhất, cùng thư mục với tệpsecrets.properties
, sau đó thêm mã sau.MAPS_API_KEY=DEFAULT_API_KEY
Mục đích của tệp này là cung cấp 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 nhân bản ứng dụng từ một hệ thống quản lý phiên bản bỏ quasecrets.properties
và bạn chưa tạo tệpsecrets.properties
cục bộ để cung cấp khoá API. -
Trong tệp
AndroidManifest.xml
, hãy chuyển đếncom.google.android.geo.API_KEY
rồi cập nhậtandroid:value attribute
. Nếu thẻ<meta-data>
không tồn tại, hãy tạo thẻ này dưới dạng thẻ con của thẻ<application>
.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Lưu ý:
com.google.android.geo.API_KEY
là 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ả SDK Maps cho Android. Để tương thích ngược, API 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 v2. 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.kts
hoặcbuild.gradle
ở cấp mô-đun và chỉnh sửa thuộc tínhsecrets
. Nếu thuộc tínhsecrets
khô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
propertiesFileName
thànhsecrets.properties
, đặtdefaultPropertiesFileName
thànhlocal.defaults.properties
và đặt bất kỳ thuộc tính nào 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 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" }
Bước tiếp theo
- Xem trang dự án GitHub của Trình bổ trợ Secrets Gradle cho Android.
- 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ợ.