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 đó, bạn nên lưu trữ nó 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 hệ thống quản lý phiên bản và sau đó
hãy 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ừ
tệp thuộc tính chưa được kiểm tra trong hệ thống quản lý phiên bản. Sau đó, trình bổ trợ này sẽ hiển thị các 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ụ đầy đủ về cách sử dụng Trình bổ trợ Gradle Secrets cho Android để truy cập vào một khoá API, hãy xem bài viết 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 trong dự án Google Maps:
-
Trong Android Studio, hãy mở
build.gradle.kts
hoặcbuild.gradle
cấp cao nhất rồi 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 rồi thêm mã sau đây 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ằngtargetSdk
vàcompileSdk
đã được đặt đến 34. - Lưu tệp và đồng bộ hoá dự án với Gradle.
-
Mở tệp
secrets.properties
trong thư mục cấp cao nhất của bạn, sau đó thêm sau đây. Thay thếYOUR_API_KEY
bằng khoá API. Lưu trữ khoá của bạn trong tệp này vìsecrets.properties
không được kiểm tra trong phần kiểm soát phiên bản hệ thống.PLACES_API_KEY=YOUR_API_KEY
- Lưu tệp.
-
Tạo tệp
local.defaults.properties
trong thư mục cấp cao nhất cũng bằng cách này làm tệpsecrets.properties
, rồi thêm mã sau.PLACES_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 sao chép ứng dụng từ một hệ thống quản lý phiên bản, trong đó bỏ quasecrets.properties
và bạn chưa tạo tệpsecrets.properties
cục bộ để cung cấp Khoá API. - Lưu tệp.
-
Trong Android Studio, hãy mở
build.gradle.kts
ở cấp mô-đun hoặcbuild.gradle
rồi 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" // 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.*" }
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" // 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.*" }
Các bước tiếp theo
- Xem Trình bổ trợ Secrets Gradle cho Android trang dự án GitHub.
- Hãy xem bài viết Thiết lập dự án Android Studio để biết ví dụ đầy đủ về cách sử dụng .