Pada kasus ini saya tidak sendiri, saya telah bergabung di forum developer ternama di indonesia dengan predikat Google Authorized Training Partner. Saya coba mengutarakan kegelisahan saya tentang tanda tangan digital, selengkapnya:
Selamat Pagi para Mastah,
Maaf, boleh saya tanya seputar Signed Apk? saya belum ada pengalaman seputar ini soalnya, sehingga ada beberapa kekhawatiran di situ. Katakanlah di sini ada 3 aktor (klien, developerA, developerB).
KasusA
1]. Pertama Signed Apk dibuild dg keystore DevA
2]. Signed Apk dikirim ke email klien
3]. Klien upload signed Apk ke playstore miliknya
- Pada kasus ini apakah saya perlu buatkan keyatore khusus utk apk tersebut?
- Apakah saya perlu sertakan juga keyatorenya utk dikirim ke klien via email?
- Apakah mengirim keystore sperti itu lazim dilakukan dan aman?
KasusB
1]. Klien putus kontrak dg DevA
2]. Klien buat kontrak dg DevB
3]. DevB build signed Apk (masih project yg sama)
- Apakah DevB harus pake keyatore dr DevA? utk bisa melanjutkan ke versi berikutnya?
- Apakah DevB bisa lanjutkan versi tanpa keystore dr DevA?
Saya kira itu kak, mohon pencerahannya, maaf jk saya masih gagal paham seputar Signed Apk.
Terimakasih banyak atas pencerahannya,
Jawab
Mastah A:
Pertama, jika aplikasinya masih tahap demo, tidak perlu di signed karena perubahan pasti akan terjadi. Kedua, setiap aplikasi hanya bisa memiliki satu buat keystore (kalo akan dipublish ke playstore). Untuk mengirim keystore itu kesepakatan bersama.
Mastah B:
Kasus A: keystore aplikasi umumnya bersifat rahasia. Di sini keystore berfungsi mengamankan source app (dari proses decompile dll.) dan kunci aplikasi kita di marketstore (playstore), tanpa keystore apk tidak bisa diupload. Keystore juga dibutuhkan untuk melakukan update ke signed apk yang sudah pernah dipublish sebelumnya. Saran saya, jika ingin app kita bersifat closed dan aman, jangan share keystore tersebut ke orang lain yang tidak berkepentingan dengan aplikasi.
Kasus B: untuk melakukan update aplikasi, DevB tetap butuh keystore dari DevA, karena aplikasi sudah pernah dipublish dengan keystore buatan DevA.
Hadapi Klien
Selamat pagi tim Klien,

Mendengar issue error terakhir dari akun playstore secara tidak langsung adalah kabar baik bagi kami 😃, sebagai indikasi bahwa aplikasi sudah mendekati tahap final 😃.
Namun sebelum itu, perkenankan kami untuk mengubah api key pribadi kami ke api key milik Klien, berikut langkah-langkah sederhana yang bisa dilakukan:
- Login akun https://console.developers.google.com
- Klik menu Credentials
- Klik create credentials
- Klik restrict key, lalu cukup rename aja, tak perlu restrict ke spesifik platform, karena akan memerlukan banyak syarat jika hal itu dilakukan.

Note:
Api key (none restrict) tidak terbatas penggunaannya untuk platform web / app, meski begitu alangkah baiknya jika penggunaannya didedikasikan untuk platform tertentu, agar nantinya lebih mudah dalam menganalisis statistik di dashboard, karena sumber lalu lintas tiap API KEY sudah jelas dari mana datangnya (dari web / app).
Implementasi api key di project config

Pada tahap ini, kami menawarkan pilihan:
- Jika tim Klien berkenan meng-share api key tersebut ke kami, maka kami yang akan terapkan itu di project sekaligus build ke release.
- Jika tim Klien tidak berkenan mengshare api key tersebut, maka programmer Klien yang harus melakukannya, nanti kami kirim project repositorynya, via email, programer download / clone, lalu open project dengan android studio, lalu paste key-nya ke sini:
public static final String API_KEY = "YOUR API KEY"

Setelah itu programmer bisa coba run di emulator, jika portfolio video dapat muncul dan dapat diputar, berarti implementasi berhasil, tahap berikutnya programmer dapat build ke relese menggunakan keystore miliknya / Klien.
Note:
Untuk memastikan build release properly, pastikan untuk melakukan hal ini:
- Build > Clean Project,
- File > invalidate Caches / Restart.
- Tunggu proses restart android studio completed, barulah → Build > Generate Signed Bundle / Apk release-build.apk sudah siap diupload di playstore.
Sekian dan terimakasih.
Salam,
Android Dev Jogja