Kesalahan ini dapat disebabkan oleh beberapa alasan.
Berikut adalah daftar persyaratan untuk pengujian IAB Google.
Prasyarat:
- AndroidManifest harus menyertakan izin "com.android.vending.BILLING" .
- APK dibangun dalam mode rilis .
- APK ditandatangani dengan sertifikat rilis . (Penting: dengan "Penandatanganan Aplikasi oleh Google Play" ini hanya berfungsi jika Anda mengunduh langsung dari GooglePlayStore!)
- APK diunggah ke saluran distribusi alfa / beta (sebelumnya - sebagai konsep) ke konsol pengembang setidaknya satu kali. (membutuhkan waktu ~ 2 jam-24 jam ).
- Produk IAB diterbitkan dan statusnya diatur ke aktif .
- Akun uji ditambahkan di konsol pengembang.
Persyaratan pengujian:
- Test APK memiliki versi yang sama dengan kode yang diunggah ke konsol pengembang.
- Test APK ditandatangani dengan sertifikat yang sama dengan yang diunggah ke dev.console.
- Akun uji (bukan pengembang) - adalah akun utama pada perangkat. (Akun utama mungkin tidak perlu - menurut komentar @MinosL )
- Akun uji diikutkan sebagai penguji dan tertaut ke metode pembayaran yang valid . ( @Kyone )
PS: Debugging dengan sertifikat rilis : https://stackoverflow.com/a/15754187/1321401 (Thnx @dipp untuk tautan)
PPS: Sudah lama ingin membuat daftar ini.
Thnx @zlgdev , @Kyone , @MinosL untuk pembaruan
Ahh menemukan solusinya setelah mencoba selama beberapa jam.
sumber
Hal yang sama akan terjadi jika versi yang Anda publikasikan tidak sama dengan versi yang Anda uji pada ponsel Anda.
Misalnya, versi yang diunggah adalah
android:versionCode="1"
, dan versi yang Anda uji pada ponsel Andaandroid:versionCode="2"
sumber
android:versionCode="1"
dan telepon sudahandroid:versionCode="2"
cukup atau saya harus mengubah apk google play?Anda harus menandatangani APK dengan sertifikat langsung Anda. Kemudian instal itu ke perangkat uji Anda. Anda kemudian dapat menguji InAppBilling. Jika Anda menguji aplikasi Anda dengan menjalankan langsung melalui gerhana ke perangkat (Dalam mode debug) maka Anda akan mendapatkan kesalahan ini.
Jika Anda menggunakan
android.test.purchased
sebagai SKU, itu akan berfungsi sepanjang jalan, tetapi Anda tidak akan memiliki developerPayload dalam respons akhir Anda.Jika Anda menggunakan konsep sendiri dalam item aplikasi, Anda dapat menguji sepenuhnya tetapi Anda akan dikenai biaya dan harus mengembalikannya sendiri setelahnya.
Anda tidak dapat membeli item dengan akun gmail yang sama yang Anda gunakan untuk konsol pengembangan google play.
sumber
Di konsol pengembang:
Settings
->Account details
->License Testing
-> Akun Gmail dengan akses pengujiandan ketik di sini akun Anda
sumber
Jika Anda di sini mulai tahun 2018, Anda harus mengunduh APK langsung dari Play Store dan menginstal APK "turunan". Mungkin itu karena Google Play Store memiliki fitur "Penandatanganan Aplikasi oleh Google Play".
sumber
Ini akan terjadi jika Anda menggunakan versi apk yang berbeda dari yang ada di google play.
sumber
Biarkan saya menambahkan apa yang terjadi dengan saya, semoga membantu seseorang.
Itu terutama karena penandatanganan.
Karena saya telah menambahkan detail penandatanganan dalam struktur Project, saya berpikir bahwa setiap kali saya menjalankan, diharapkan apk yang ditandatangani semakin terinstal. Tapi tipe build 'debug' dipilih.
Perbaikan di bawah ini memecahkan masalah bagi saya.
sumber
Dalam kasus saya, saya melihat pesan yang sama karena tanda tangan yang berbeda dari apk yang diinstal dan diunggah ke apk pasar.
sumber
Berlawanan dengan banyak jawaban dan komentar di SO dan situs lain, Anda TIDAK harus melakukan tes pendahuluan dengan versi alpha / beta dari produk Anda yang telah diunduh dari Google Play ke perangkat pengujian Anda (proses publikasi alpha / beta sering memakan setengah hari). Anda juga tidak harus memuat dan memuat ulang apk rilis yang ditandatangani dari studio pengembang Anda ke perangkat pengujian Anda.
Anda BISA men-debug Google Play awal dalam layanan penagihan aplikasi menggunakan aplikasi debug yang dimuat dari studio pengembang Anda langsung ke perangkat uji Anda melalui ADB. Jika Anda mengalami kesalahan yang mencegah hal ini, kemungkinan Anda telah melakukan kesalahan pada kode Anda. Perhatikan KASUS SKU Anda (id produk) dan formatnya (misalnya, jika Anda memuat APK sebagai com.mydomain.my_product_id, pastikan Anda mencoba membelinya dengan cara ini - dengan menyediakan case dan domain yang sama) . Juga, perhatikan dengan seksama itemType Anda - ini harus berupa "tidak" atau "subs" untuk dikelola / tidak dikelola dalam pembelian aplikasi atau berlangganan, masing-masing.
Seperti yang disarankan oleh Chirag Patel, asalkan Anda memiliki kode penagihan yang ditetapkan dengan benar, lakukan semua pengujian menggunakan Sku (ID produk) android.test.purchased selama tes pendahuluan Anda. Periksa ID ini di seluruh operasi penagihan Anda untuk memberikannya melalui tanda tangan, token, dan cek muatan, karena data ini tidak disediakan oleh sistem pengujian Google. Selain itu, berikan salah satu produk uji Anda ID ini untuk menguji pembeliannya, membuka / memuat, dan presentasi sepanjang jalan melalui skema Anda. Untuk menghapus pembelian, cukup mengkonsumsinya, melewati Sku yang sama DAN string token diformat dengan cara ini - tidak ada bidang lain yang relevan:
Setelah Anda menyelesaikan fase pengujian ini, lanjutkan ke pengujian semi-live dengan produk alfa / beta Anda. Buat grup Google (dasarnya mailing list), tambahkan email pengguna tes Anda ke dalamnya, dan tambahkan / undang grup ini untuk menguji perangkat Anda dalam fase ini (dilakukan di bagian "APK" dari daftar pengembang Google aplikasi Anda). Pembelian akan disimulasikan tetapi tidak benar-benar dibebankan - namun untuk menghapus dan menguji kembali pembelian, Google menunjukkan bahwa Anda harus mengembalikannya dari dompet Google Anda. INI adalah satu-satunya fase pengujian yang membutuhkan proses yang memakan waktu menggunakan alpha / beta load dan pengguna tes.
sumber
Jika Anda ingin men-debug IAB, apa yang harus Anda lakukan adalah:
Kirim ke google play versi aplikasi Anda dengan izin IAB pada manifes:
Tambahkan produk ke aplikasi Anda di google play: Mengelola Penagihan dalam Aplikasi
Setel keystore debug kustom yang ditandatangani: Konfigurasikan Eclipse untuk menggunakan keystore yang ditandatangani
sumber
Punya masalah yang sama, dan itu tidak diselesaikan sebelum saya membaca posting dari DZDomi. Tiba-tiba terjadi bahwa ada pengaturan di Google Developer Console yang perlu Anda aktifkan. Di bagian "Pembelian dalam aplikasi", ada garis untuk produk Anda dan di ujung kanan ada status untuk itu. Itu harus AKTIF!
sumber
masalah saya adalah bahwa saya mencoba untuk memeriksanya dengan debug.keystore, maksud saya menjalankannya melalui eclipse. Saya mengekspornya dengan keystore yang saya terbitkan dalam mode alfa (harus diterbitkan sebelum Anda dapat mengujinya). telepon saya dan kemudian saya bisa mengujinya secara normal.
sumber
Masalahnya juga terjadi, ketika Anda telah menambahkan pembelian dalam aplikasi setelah Anda mengunggah apk, tetapi Anda belum menerbitkan aplikasi di play store (alfa, beta, dan produksi).
Yang pada dasarnya berarti, bahwa Anda harus menambahkan pembelian dalam Aplikasi SETELAH Anda telah menerbitkan apk di Play Store (alfa, beta, dan produksi). Kalau tidak, Anda tidak akan dapat membeli atau meminta pembelian dalam Aplikasi.
sumber
Alasan lain yang tidak disebutkan di sini adalah bahwa Anda perlu menguji pada perangkat nyata. Dengan emulator menjadi sangat bagus, itu adalah kesalahan yang mudah dibuat.
sumber
Baru-baru ini Google telah menerapkan perubahan pada sistem mereka, dan karena Anda telah mengunggah setidaknya satu APK ke konsol Anda, Anda dapat menguji permintaan dalam aplikasi Anda dengan aplikasi Anda dengan kode / nomor versi apa pun.
LINK referensi silang
sumber
LARUTAN
Tunggu sebentar setelah mengunggah aplikasi Anda di play store karena google membutuhkan waktu untuk memperbarui versi aplikasi. Ini akan berhasil!
sumber
Saya memiliki masalah yang sama di moto c2 + dalam kasus saya ini adalah masalah perangkat setelah saya restart maka akan berjalan dengan sempurna ...
sumber