Bạn thực sự không nên kiểm tra khoá API trong hệ thống kiểm soát phiên bản. Thay vào đó, bạn nên lưu trữ khoá này trong một tệp secrets.properties cục bộ. Tệp này nằm trong thư mục gốc của dự án nhưng không được đưa vào quy trình kiểm soát phiên bản. 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 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 kiểm soát phiên bản. Sau đó, trình bổ trợ 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ợ Secrets Gradle cho Android để truy cập vào 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ở cấp gốc rồi thêm đoạn mã sau vào phần tửdependenciestrongbuildscript.Groovy
buildscript { dependencies { // ... classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
Kotlin
buildscript { dependencies { // ... classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
-
Mở tệp
build.gradleở cấp ứng dụng rồi thêm đoạn mã sau vào phần tửplugins.Groovy
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
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ở
local.propertiestrong thư mục cấp dự án, sau đó thêm đoạn mã sau. Thay thếYOUR_API_KEYbằng khoá API của bạn.MAPS_API_KEY=YOUR_API_KEY
-
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 một 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. Để đảm bảo khả năng 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 trường hợp ngoại lệ.
Bước tiếp theo
- Xem trang dự án GitHub 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ợ này.