Jika Anda adalah developer Web yang baru menggunakan Android dan Google Play, ada beberapa detail yang harus Anda ketahui. Sudah ada banyak referensi dan dokumentasi untuk hal ini (terima kasih kepada tim Android), tetapi di sini kita akan menyoroti beberapa konsep penting dan kaitannya dengan Bubblewrap.
Kunci Upload vs. Kunci Penandatanganan
Jika Anda berencana menggunakan Bubblewrap untuk membuat Android App Bundle (AAB) (Catatan: Mulai Agustus 2021, Google Play akan mewajibkan semua aplikasi baru untuk menggunakan format Android App Bundle) atau APK untuk diupload dan dipublikasikan ke Google Play, Anda harus menandatangani aplikasi dengan kunci penandatanganan. Google Play memberi Anda dua opsi untuk menangani hal ini:
- Penandatanganan Aplikasi Play (sangat direkomendasikan): Google akan mengelola dan melindungi kunci penandatanganan aplikasi
untuk Anda. Library ini menggunakannya untuk menandatangani APK Anda yang akan didistribusikan. Penandatanganan Aplikasi Play menggunakan dua kunci. "Kunci
penandatanganan aplikasi" yang akan dikelola Google untuk Anda dan "kunci upload" yang Anda simpan dan harus tetap
rahasia untuk Anda. Anda menggunakan kunci upload untuk menandatangani aplikasi agar dapat diupload ke Konsol Play. Sistem
ini memungkinkan Anda mereset kunci upload jika kunci upload hilang atau disusupi, dengan
menghubungi tim dukungan Play. Saat ini, Google Play
memungkinkan Anda mengupload aplikasi sebagai AAB atau APK:
- Android App Bundle (AAB): Saat mengupload AAB ke Konsol Play, Anda menunda pembuatan dan pembuatan APK ke Google Play Store. Saat pengguna mendownload dan menginstal aplikasi Anda, Google Play akan mendistribusikannya kepada mereka sebagai APK yang ditandatangani. Oleh karena itu, penandatanganan APK juga harus dilakukan oleh Google Play. Jadi, secara default, jika Anda mengupload aplikasi sebagai AAB ke Konsol Play, Anda akan diwajibkan untuk menggunakan Penandatanganan Aplikasi Play.
- APK: Dengan APK, Anda memiliki pilihan untuk ikut serta dalam Penandatanganan Aplikasi Play. Memilih ikut serta dalam Penandatanganan Aplikasi Play sangat direkomendasikan karena meningkatkan keamanan kunci penandatanganan Anda. Seperti yang dinyatakan sebelumnya, Google Play akan segera mewajibkan semua aplikasi baru diupload dalam format AAB, jadi sebaiknya lakukan hal tersebut, bukan mengupload APK.
- Kelola kunci penandatanganan Anda sendiri: Jika memilih untuk mengelola kunci Anda sendiri dan tidak ikut serta dalam Penandatanganan Aplikasi Play, Anda bertanggung jawab penuh atas kunci penandatanganan aplikasi. Tidak seperti Penandatanganan Aplikasi Play, Anda tidak dapat meresetnya jika kehilangan kunci. Oleh karena itu, kehilangan kunci penandatanganan aplikasi berarti Anda juga kehilangan kemampuan untuk mengupdate aplikasi.
Selama penyiapan bubblewrap init
, saat Anda membuka bagian "Signing key information (5/5)",
Anda akan diminta untuk memasukkan "Key store location" dan "Key name", atau menggunakan setelan default. Lokasi
penyimpanan kunci default adalah file android.keystore
di direktori project Anda, dan nama kunci
defaultnya adalah android
. Jika Bubblewrap tidak menemukan keystore yang ada dengan nama kunci tersebut di
lokasi, keystore akan dibuat untuk Anda dan juga meminta sandi. Catat sandi
yang Anda masukkan karena Anda akan memerlukannya selama proses build (bubblewrap build
) saat kunci akan
digunakan untuk menandatangani aplikasi. Jika Anda memilih ikut serta dalam Penandatanganan Aplikasi Play, kunci penandatanganan yang
dibuat dan digunakan oleh Bubblewrap untuk menandatangani aplikasi Anda akan menjadi "kunci upload". Baik Anda memilih untuk menggunakan
kunci yang dihasilkan Bubblewrap sebagai kunci penandatanganan atau upload, Anda harus menjaga dan merahasiakan kunci tersebut.
Sebaiknya jangan commit ke kontrol versi. Sebagai gantinya, batasi jumlah individu yang
memiliki akses ke data tersebut.
Digital Asset Links
Link Aset Digital diperlukan untuk mendeklarasikan hubungan antara situs dan aplikasi Android
Anda. Untuk memastikan aplikasi Android yang dihasilkan oleh Bubblewrap diverifikasi dengan benar dan diluncurkan sebagai
Aktivitas Web Tepercaya (bukan Tab Kustom Chrome), Anda harus menambahkan kunci yang sesuai ke
file assetlinks.json
. Kemudian, upload ke situs Anda di .well-known/assetlinks.json
(relatif terhadap root). File assetlinks.json
Anda harus mengikuti format ini:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
}]
Mendapatkan sidik jari sertifikat SHA256
Untuk membuat file assetlinks.json
, Anda memerlukan sidik jari sertifikat SHA 256 yang terkait
dengan kunci penandatanganan aplikasi Anda. Yang penting untuk diperhatikan adalah sidik jari yang terkait dengan
kunci penandatanganan dan upload Anda akan berbeda. Pastikan untuk mengingat
perbedaan ini, terutama jika Anda mengamati aplikasi diluncurkan sebagai Tab Khusus Chrome (dengan
kolom browser terlihat). Kemudian, kemungkinan file assetlinks.json
Anda tidak memiliki
sidik jari yang sesuai dengan kunci yang sesuai.
Sebaiknya sidik jari sertifikat penandatanganan dan upload Anda ada di assetlinks.json
untuk men-debug aplikasi secara lokal dengan lebih mudah. Lihat Menambahkan Kunci Lainnya di bawah untuk informasi
selengkapnya tentang cara memiliki kedua kunci dalam file assetlinks.json
.
Ada beberapa cara untuk mendapatkan sidik jari yang dijelaskan di bagian berikutnya. Semua metode tersebut akan memberikan sidik jari yang sama, jadi jangan ragu untuk memilih metode yang paling sesuai.
Melalui Konsol Play
Bergantung pada apakah Anda ikut serta dalam Penandatanganan Aplikasi Play atau tidak, Anda mungkin memiliki satu atau dua kunci. Untuk mengambil sidik jari SHA256 yang sesuai untuk setiap kunci:
- Buka Konsol Play
- Memilih aplikasi yang Anda minati
- Di menu navigasi sebelah kiri, pada bagian Rilis, buka Penyiapan -> Integritas Aplikasi.
- Salin SHA256 untuk kunci yang sesuai:
Kunci penandatanganan: Salin sidik jari SHA256 untuk "Sertifikat kunci penandatanganan aplikasi". Sidik jari ini akan sesuai dengan aplikasi Anda jika Anda mendownloadnya dari Google Play Store karena Google Play mendistribusikan aplikasi Anda yang ditandatangani dengan kunci penandatanganan.
Upload key: Salin sidik jari SHA256 untuk "Upload key certificate". Sidik jari ini akan sesuai dengan aplikasi Anda jika Anda menginstalnya secara lokal (misalnya, melalui ADB melalui USB). APK tersebut (di komputer lokal) dibuat oleh Bubblewrap, sehingga juga ditandatangani dengan kunci yang dibuatnya untuk Anda (selama penyiapan
init
). Perlu diingat bahwa ini mungkin kunci penandatanganan untuk aplikasi yang diinstal secara lokal, tetapi ini sebenarnya menjadi "kunci upload" setelah Anda memublikasikan aplikasi melalui Play.
Melalui keytool
keytool adalah alat pengelolaan kunci dan sertifikat. Anda dapat menggunakan keytool untuk mengekstrak sidik jari SHA 256 yang terkait dengan APK atau AAB Bubblewrap yang dihasilkan. Perhatikan bahwa sidik jari ini adalah untuk kunci penandatanganan lokal dan jika Anda mengupload aplikasi ke Play dan memilih ikut serta dalam Penandatanganan Aplikasi Play, kunci ini akan menjadi "kunci upload".
keytool -printcert -jarfile [path to APK or AAB] | grep SHA256
Melalui Alat Link Aset
Cara lain untuk mendapatkan file Digital Asset Links yang benar untuk aplikasi Anda adalah dengan menggunakan Alat Asset Link:
- Instal Alat Penautan Aset dari Play Store.
- Di perangkat yang sama, download aplikasi Anda dari Google Play Store atau instal secara lokal.
- Buka aplikasi Alat Penautan Aset, dan Anda akan diberi daftar semua aplikasi yang diinstal di
perangkat berdasarkan nama paket. Filter daftar menurut ID aplikasi yang Anda pilih sebelumnya selama
bubblewrap init
, lalu klik entri tersebut. - Anda akan melihat halaman yang mencantumkan tanda tangan aplikasi dan Digital Asset Link yang dihasilkan. Klik tombol Salin atau Bagikan di bagian bawah untuk mengekspornya sesuai keinginan Anda (misalnya, simpan ke Google Keep, kirim email ke diri sendiri).
Ide yang sama berlaku seperti sebelumnya dengan kunci penandatanganan atau upload. Jika Anda menginstal aplikasi dari Google Play Store, Alat Penautan Aset akan memberi Anda sidik jari untuk kunci penandatanganan aplikasi. Jika Anda menginstal aplikasi langsung dari komputer lokal, sidik jari tersebut akan digunakan untuk kunci yang dihasilkan Bubblewrap.
Memastikan file link aset Anda dapat diakses
Setelah diupload, pastikan Anda dapat mengakses file link aset di browser.
Pastikan https://example.com/.well-known/assetlinks.json
me-resolve ke file yang baru saja Anda upload.
Situs berbasis Jekyll
Jika situs Anda dibuat oleh Jekyll (seperti GitHub Pages), Anda harus menambahkan baris
konfigurasi sehingga direktori .well-known
disertakan dalam output.
Bantuan GitHub memiliki informasi selengkapnya tentang topik ini.
Buat file bernama _config.yml
di root situs Anda (atau tambahkan ke file tersebut jika sudah ada) dan
masukkan:
# Folders with dotfiles are ignored by default.
include: [.well-known]
Menambahkan lebih banyak kunci
File Digital Asset Link dapat berisi lebih dari satu aplikasi, dan untuk setiap aplikasi, file ini dapat berisi lebih dari satu kunci. Misalnya, untuk menambahkan kunci kedua, cukup gunakan Alat Link Aset untuk menentukan kunci tersebut dan menambahkannya sebagai entri kedua. Kode di Chrome yang mengurai JSON ini cukup ketat, jadi pastikan Anda tidak menambahkan koma tambahan secara tidak sengaja di akhir daftar.
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
},{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
}]
Pemecahan masalah
Chrome mencatat alasan kegagalan verifikasi Digital Asset Links dan Anda dapat melihat log di
perangkat Android dengan adb logcat
.
Jika Anda mengembangkan di Linux/Mac, Anda dapat melihat log yang relevan dari perangkat yang terhubung
dengan:
> adb logcat -v brief | grep -e OriginVerifier -e digital_asset_links
Misalnya, jika Anda melihat pesan Statement failure matching fingerprint.
, sebaiknya gunakan
Alat Link Aset untuk melihat tanda tangan aplikasi Anda dan memastikan tanda tangan tersebut cocok dengan yang ada di file
assetlinks.json
.