Konsep Android (untuk Developer Web)

Peter Conn
Peter Conn
Joyce Toh
Joyce Toh

Jika Anda seorang developer Web yang baru mengenal Android dan Google Play, ada beberapa detail yang harus Anda perlu diketahui. Sudah ada banyak sumber daya dan dokumentasi untuk ini (berkat Android ) tetapi di sini kita akan menyoroti beberapa konsep penting dan bagaimana mereka berhubungan dengan Bubblewrap.

Kunci Upload vs. Penandatanganan

Jika Anda berencana menggunakan Bubblewrap untuk membuat Android App Bundle (AAB) (Catatan: Mulai bulan Agustus 2021, Google Play akan mewajibkan semua aplikasi baru untuk menggunakan format Android App Bundle) atau APK untuk mengupload dan memublikasikan ke Google Play, Anda harus menandatangani aplikasi dengan kunci penandatanganan. Kebijakan Privasi Play memberi Anda dua opsi cara menangani hal ini:

  • Penandatanganan Aplikasi Play (sangat direkomendasikan): Google akan mengelola dan melindungi kunci penandatanganan aplikasi Anda keamanan untuk Anda. Library ini menggunakannya untuk menandatangani APK Anda yang akan didistribusikan. Penandatanganan Aplikasi Play menggunakan dua kunci. Aplikasi " kunci penandatanganan" yang akan dikelola Google untuk Anda dan "kunci upload" yang Anda pertahankan dan harus tetap bersifat pribadi untuk Anda. Anda dapat menggunakan kunci upload untuk menandatangani aplikasi agar dapat diupload ke Konsol Play. Ini memungkinkan Anda untuk menyetel ulang kunci upload jika hilang atau disusupi, dengan menghubungi tim dukungan Play. Saat ini, Google Play memungkinkan Anda mengupload aplikasi sebagai AAB atau APK:
    • Android App Bundle (AAB): Kapan jika Anda mengupload AAB ke Konsol Play, Anda mengalihkan pembuatan dan pembuatan APK ke Google Play Store. Saat pengguna mendownload dan menginstal aplikasi Anda, Google Play akan mendistribusikannya sebagai APK yang ditandatangani. Oleh karena itu, penandatanganan APK juga harus dilakukan oleh di Google Play. Jadi, secara default, jika Anda mengupload aplikasi sebagai AAB ke Konsol Play, aplikasi akan mengharuskan Anda menggunakan Penandatanganan Aplikasi Play.
    • APK: Dengan APK, Anda dapat memilih untuk ikut serta dalam Penandatanganan Aplikasi Play. Ikut serta dalam Aplikasi Play Penandatanganan sangat disarankan karena meningkatkan keamanan kunci penandatanganan Anda. Seperti yang disebutkan sebelumnya, Google Play akan segera mewajibkan semua aplikasi baru diupload dalam format AAB, jadi kami menyarankan Anda melakukannya, bukan mengupload APK.
  • Kelola kunci penandatanganan Anda sendiri: Jika Anda memilih untuk mengelola kunci Anda sendiri dan tidak ikut serta dalam Aplikasi Play Menandatangani, Anda bertanggung jawab penuh atas kunci penandatanganan aplikasi. Tidak seperti Penandatanganan Aplikasi Play, fitur ini tidak mungkin untuk mengatur ulang kuncinya jika Anda kehilangan kuncinya. Oleh karena itu, kehilangan kunci penandatanganan aplikasi berarti Anda juga kehilangan kemampuan untuk memperbarui aplikasi Anda.

Selama penyiapan bubblewrap init, saat Anda sampai ke bagian "Informasi kunci penandatanganan (5/5)", Anda akan diminta untuk memasukkan "Key store location" dan "Key name", atau menggunakan setelan default. Tujuan lokasi penyimpanan kunci default adalah file android.keystore di direktori project Anda dan nama kuncinya adalah android. Jika Bubblewrap tidak menemukan keystore yang sudah ada dengan nama kunci tersebut di lokasi, mode ini akan membuatkan akun untuk Anda dan juga meminta sandi. Catat sandinya yang Anda masukkan karena akan memerlukannya selama proses build (bubblewrap build) yang akan menggunakan untuk menandatangani aplikasi. Jika Anda ikut serta dalam Penandatanganan Aplikasi Play, kunci penandatanganan yang bernama Bubblewrap dibuat dan digunakan untuk menandatangani aplikasi Anda akan menjadi "kunci upload". Apakah Anda memilih untuk menggunakan Kunci yang dihasilkan Bubblewrap sebagai kunci penandatanganan atau upload, Anda harus menjaga dan merahasiakan kunci tersebut. Kami tidak merekomendasikannya ke kontrol versi. Sebaliknya, batasi jumlah individu dengan akses terhadap data tersebut.

Digital Asset Links diperlukan untuk mendeklarasikan hubungan antara situs dan Android Anda . Untuk memastikan bahwa apl Android yang dihasilkan oleh Bubblewrap diverifikasi dengan benar dan diluncurkan sebagai Aktivitas Web Tepercaya (bukan Tab Khusus Chrome), Anda perlu menambahkan kunci yang sesuai ke file assetlinks.json Anda. Lalu upload ke situs Anda di .well-known/assetlinks.json (sesuai dengan 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. Hal yang penting untuk diperhatikan adalah sidik jari yang terkait dengan kunci penandatanganan dan upload akan berbeda. Penting untuk tetap perbedaan ini, terutama jika Anda mengamati peluncuran aplikasi sebagai Tab Khusus Chrome (dengan bilah browser terlihat). Kemudian, kemungkinan file assetlinks.json Anda tidak memiliki sidik jari yang sesuai dengan kunci yang sesuai.

Ada baiknya Anda memiliki sidik jari sertifikat penandatanganan dan upload di assetlinks.json Anda untuk lebih mudah men-debug aplikasi Anda secara lokal. Lihat Menambahkan Lebih Banyak Kunci di bawah untuk mengetahui informasi selengkapnya informasi tentang cara memiliki kedua kunci di file assetlinks.json.

Ada beberapa cara untuk mendapatkan sidik jari, yang akan dijelaskan di bagian selanjutnya. Mereka semua seharusnya memberi Anda sidik jari yang sama jadi jangan ragu untuk memilih metode yang paling praktis.

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. Pilih aplikasi yang Anda minati
  3. Pada menu navigasi di sebelah kiri, di bagian Rilis, buka Penyiapan -> Integritas Aplikasi.
  4. Salin SHA256 untuk kunci yang sesuai:

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

  • Kunci penandatanganan: Salin sidik jari SHA256 untuk "App signing key certificate". Ini sidik jari akan sesuai dengan aplikasi Anda jika Anda mengunduhnya 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". Ini akan sesuai dengan aplikasi jika Anda menginstalnya secara lokal (melalui ADB melalui USB untuk contoh). APK tersebut (di komputer lokal) dibuat oleh Bubblewrap, dan karenanya ditandatangani oleh kunci yang dibuat untuk Anda juga (selama penyiapan init). Ingatlah bahwa ini mungkin kunci penandatanganan untuk aplikasi yang diinstal secara lokal, tetapi sebenarnya ini menjadi "kunci upload" sekali Anda memublikasikan aplikasi melalui Play.

Melalui keytool

keytool adalah kunci dan manajemen 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 digunakan 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 Asset Link:

  1. Instal Alat Link Aset dari Play Store.
  2. Di perangkat yang sama, download aplikasi dari Google Play Store atau instal secara lokal.
  3. Buka aplikasi Asset Link Tool, dan Anda akan melihat daftar semua aplikasi yang terinstal di perangkat berdasarkan nama paket. Memfilter daftar berdasarkan ID aplikasi yang Anda pilih sebelumnya dalam bubblewrap init dan klik entri tersebut.
  4. Anda akan melihat halaman yang mencantumkan tanda tangan aplikasi Anda dan Digital Asset Link yang dibuat. Klik Tombol Salin atau Bagikan di bagian bawah untuk mengekspor sesuai keinginan (misalnya, simpan ke Google Keep, kirimkan ke diri Anda sendiri).

Ide yang sama berlaku seperti sebelumnya, dalam hal kunci penandatanganan atau upload. Jika Anda menginstal aplikasi dari Google Play Store, Alat Asset Link akan memberi Anda sidik jari untuk kunci penandatanganan aplikasi Anda. Jika Anda menginstal aplikasi langsung dari komputer lokal Anda, maka sidik jari adalah untuk kunci Balon wrap dibuat.

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 web 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 dengan nama _config.yml di root situs Anda (atau tambahkan ke file jika sudah ada) dan masukkan:

# Folders with dotfiles are ignored by default.
include: [.well-known]

Menambahkan kunci lainnya

File Digital Asset Link dapat berisi lebih dari satu aplikasi, dan untuk setiap aplikasi, dapat berisi lebih dari satu tombol saja. Misalnya, untuk menambahkan kunci kedua, cukup gunakan Alat Link 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.

[{
  "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 Perangkat Android dengan adb logcat. Jika Anda mengembangkan aplikasi 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 Asset Link untuk melihat tanda tangan aplikasi Anda dan memastikannya cocok dengan assetlinks.json .