Konsep Android (untuk Developer Web)

Peter Conn
Peter Conn
Joyce Toh
Joyce Toh

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. Kunci ini digunakan 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 tersebut 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. Sebaiknya ikut serta dalam Penandatanganan Aplikasi Play karena akan 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.
  • Mengelola kunci penandatanganan Anda sendiri: Jika memilih untuk mengelola kunci Anda sendiri dan tidak ikut serta dalam Penandatanganan Aplikasi Play, Anda sepenuhnya bertanggung jawab atas kunci penandatanganan aplikasi Anda. 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 keystore default adalah file android.keystore di direktori project Anda dan nama kunci default adalah android. Jika Bubblewrap tidak menemukan keystore yang ada dengan nama kunci tersebut di lokasi, keystore akan dibuat untuk Anda dan juga meminta sandi. Perhatikan sandi yang Anda masukkan karena Anda akan memerlukannya selama proses build (bubblewrap build) yang akan menggunakan kunci untuk menandatangani aplikasi Anda. Jika Anda memilih ikut serta dalam Penandatanganan Aplikasi Play, kunci penandatanganan yang dihasilkan Bubblewrap dan digunakan 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 lakukan commit ke kontrol versi. Sebagai gantinya, batasi jumlah individu yang memiliki akses ke data tersebut.

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:

  1. Buka Konsol Play
  2. Memilih aplikasi yang Anda minati
  3. Di menu navigasi sebelah kiri, pada bagian Rilis, buka Penyiapan -> Integritas Aplikasi.
  4. Salin SHA256 untuk kunci yang sesuai:

Ambil sidik jari sertifikat SHA256 yang sesuai untuk kunci penandatanganan atau upload Anda

  • 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 Anda) dibuat oleh Bubblewrap, sehingga ditandatangani oleh kunci yang juga dibuat 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 Bubblewrap APK atau AAB 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

Cara lain untuk mendapatkan file Digital Asset Links yang benar untuk aplikasi Anda adalah dengan menggunakan Alat Link Aset:

  1. Instal Alat Penautan Aset dari Play Store.
  2. Di perangkat yang sama, download aplikasi Anda dari Google Play Store atau instal secara lokal.
  3. 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.
  4. 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 adalah untuk kunci Bubblewrap yang dihasilkan.

Setelah menguploadnya, 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 agar 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 Penautan Aset untuk menentukan kunci dan menambahkannya sebagai entri kedua. Kode di Chrome yang mengurai JSON ini cukup ketat, jadi pastikan Anda tidak menambahkan koma tambahan di akhir daftar secara tidak sengaja.

[{
  "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 verifikasi Digital Asset Links gagal 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., Anda harus menggunakan Alat Penautan Aset untuk melihat tanda tangan aplikasi dan memastikannya cocok dengan yang ada dalam file assetlinks.json.