Uygulamanın bu sürümü Google Play üzerinden faturalandırma için yapılandırılmamış


269

Uygulamamı uygulama içi faturalandırma ile çalıştırmaya çalıştığımda şu hatayı alıyorum: "Uygulamanın bu sürümü Google Play üzerinden faturalandırma için yapılandırılmamış. Daha fazla bilgi için yardım merkezine bakın".

Manifest dosyasında zaten faturalandırma iznim var ve Google Play'e taslak olarak imzalanmış bir .apk var ve aynı imzalı apk'yi telefonuma da yükledim.

Bu sorunun nasıl çözüleceği konusunda herhangi bir yardım var mı?

Yanıtlar:


339

Bu hata birkaç nedenden kaynaklanabilir.

Google IAB testi için gereksinimlerin listesi aşağıdadır.

Ön şartlar:

  1. AndroidManifest'te "com.android.vending.BILLING" izni bulunmalıdır .
  2. APK, serbest bırakma modunda oluşturulmuştur .
  3. APK edilir imzalanmış olan serbest bırakma belgesi (ler) . (Önemli: "Google Play'den Uygulama İmzalama" ile yalnızca doğrudan GooglePlayStore'dan indirirseniz çalışır!)
  4. APK, geliştirici konsoluna en az bir kez alfa / beta dağıtım kanalına (önceden - taslak olarak) yüklenir . (biraz zaman alır ~ 2h-24h ).
  5. IAB ürünleri yayınlanır ve durumları etkin olarak ayarlanır .
  6. Test hesapları geliştirici konsoluna eklenir .

Test gereksinimleri:

  1. Test APK, geliştirici konsoluna yüklenen kodla aynı sürüme sahiptir .
  2. APK olduğu imzalı ile aynı belgesi (ler) dev.console yüklenen biri olarak.
  3. Test hesabı (geliştirici değil) - cihazdaki ana hesaptır . ( @MinosL yorumuna göre ana hesap gerekli olmayabilir )
  4. Test hesabı test kullanıcısı olarak seçilir ve geçerli bir ödeme yöntemiyle bağlantılıdır . ( @Kursun )

PS: Sürüm sertifikasıyla hata ayıklama : https://stackoverflow.com/a/15754187/1321401 ( Bağlantı için Thnx @dipp )

PPS: Bu listeyi uzun süre yapmak istedim.

Thnx @zlgdev , @Kyone , @MinosL güncellemelerini


5
IAB'yi test etmek için kullandığınız hesabın, bir yapı yükledikten sonra oluşturulan "kaydolma URL'si" kullanılarak bir test kullanıcısı olarak seçildiğinden emin olun ; VE geçerli bir ödeme yöntemiyle bağlantılı olduğunu .
Kasım'da herkes

3
Sadece IAP'yi test etmek daha kolay değil mi? Veya genel olarak bir şeyleri test etmek için ..
Juan

1
ayrıca kayda değer; test hesabı geliştirici hesabına bağlanmamalıdır (APK yükleme erişimi olmamalıdır)
guness

2
ayrıca kayda değer; "Uygulama imzalama sertifikası" etkinse, imzalama sertifikasıyla imzalayamadığımız için gerçek APK'ları test etmek için yerel APK'mızı kullanamayız. (öğrenmem 3 saat sürdü)
Guness

1
1) Cihazdaki ana hesap değil , 2) imzalı bir hata ayıklama uygulaması ile başarılı bir şekilde test yaptım , bu nedenle Google IAB test süreci yukarıda belirtildiği gibi katı görünmüyor.
MinosL

194

Ahh çözümü birkaç saat denedikten sonra buldu.

  1. Google, uygulamaları işlemek ve sunucularına güncellemek için biraz zaman ayırıyor, benim için yaklaşık yarım gün sürüyor. Bu yüzden apk'yi Google Play'de taslak olarak kaydettikten sonra, uygulama içi ürünlerin normal şekilde yanıt vermesi ve düzenli satın alma işlemlerine izin vermesi için birkaç saat beklemelisiniz.
  2. APK'yi dışa aktarın ve imzalayın. İmzasız APK alışveriş yapmaya çalışırken hata alır.

71
Vay canına, bu ciddi mi? Sadece aynı problemle karşılaştı. Google, uygulama içi faturalandırmayı test etmek için benden istediğim her şeyi yaptı, ancak yine de aynı kaçırma hata mesajını aldı. Sanırım beklemek ve görmek zorunda kalacağım. Ancak Google, uygulama içi faturalandırmayı uygulamak için uygulamalarımızdan her güncellememiz gerektiğinde geliştiricilerin saatler beklemelerini gerçekten bekliyor mu? Az söylemek benim için oldukça uygunsuz görünüyor.
Simon

6
Android Studio'ya bağlıyken / hata ayıklayıcıya bağlıyken çalışırken test yapabilir misiniz? Yoksa sürüm apk'yi USB üzerinden mi kurmanız gerekiyor?
Alfie Hanssen

3
Satın alma işlemini test etmenin daha kolay bir yolu var mı? Bir şey mi kaçırmalıyım?
wired00

4
Cidden, uygulamayı hata ayıklama sertifikasıyla kullanamıyorum ve Uygulama İçi Faturalandırmayı test edemiyorum?
TacB0sS

8
Çalışırken doğrudan IDE'nizden hata ayıklama yapılarını kullanabileceğinizi unutmayın. Hata ayıklama anahtar deposunu sürüm deponuzla eşleşecek şekilde değiştirmeniz yeterlidir. Nasıl yapılacağı hakkında daha fazla bilgi için bu
gönderiye bakın

137

Yayınlanan sürümünüz, telefonunuzda test ettiğiniz sürümle aynı değilse de aynı şey olur.

Örneğin, yüklenen sürüm android:versionCode="1"ve telefonunuzda test ettiğiniz sürümandroid:versionCode="2"


3
u bana yüklenen sürümü android:versionCode="1"ve telefon android:versionCode="2"dozu tamam ya da ben apk google play değiştirmek zorunda ne söyleyebilir misiniz ?
Youddh

1
Yapmanız gereken yerel sürümü "1" e düşürmektir, böylece test için en azından geçici olarak mevcut canlı sürümle eşleşir.
Romain

2
Durumunuza bağlı olarak bu hatanın 2 yaygın çözümü olduğu anlaşılıyor. Benim durumumda bu böyleydi.
Matt

Teşekkür ederim, sorun buydu. Bağlı cihazımda yayın imzalı apk ile hata ayıklama oldu. Ardından, sürüm kodunu değiştirdi ve 1005 hatası almaya başladı. vay!
Anna Billstrom

@ İabHelper kullanıyorsanız -1005'in de USER_CANCELLED olduğunu unutmayın
JacksOnF1re

47

APK'nızı canlı sertifikanızla imzalamanız gerekiyor. Ardından test cihazınıza kurun. Daha sonra InAppBilling'i test edebilirsiniz. Uygulamanızı eclipse üzerinden cihaza doğrudan çalıştırarak test ediyorsanız (hata ayıklama modunda) bu hatayı alırsınız.

android.test.purchasedSKU olarak kullanıyorsanız , tüm yol boyunca çalışır, ancak son yanıtınızda developerPayload'a sahip olmazsınız.

Uygulama öğesinde kendi taslağınızı kullanıyorsanız, tüm yolu test edebilirsiniz, ancak ücretlendirilirsiniz ve bu nedenle daha sonra kendiniz geri ödemeniz gerekir.

Google oyun geliştirme konsolu için kullandığınız aynı gmail hesabına sahip öğeleri satın alamazsınız.


1
+1 Hata ayıklayıcıdan çalıştırıldığında hata ayıklama sertifikası kullanılır. Uygulamayı dışa aktardıktan ve yeni bir ortak anahtar oluşturduktan (ve geliştirici konsoluna yükledikten sonra), kendinize apk'yi e-postayla gönderin ve gmail gelen kutunuzdan yükleyin.
cdavidyoung

"Android.test.purchased" denemek istersem, hem kodumda hem de geliştirici konsolunda SKU'yu değiştirecek miyim?
Rocologo

26

Geliştirici konsolunda:

Settings-> Account details-> License Testing-> Test erişimine sahip Gmail hesapları

hesaplarınızı buraya yazın


Tıkır tıkır çalışıyor.
Ürdün

17

2018'den buradaysanız, APK'yı doğrudan Play Store'dan indirmeniz ve "türetilmiş" APK'yi yüklemeniz gerekir. Belki de Google Play Store'un "Google Play'den Uygulama İmzalama" özelliği olması nedeniyle olabilir.


1
Hangi APK? AIDL kullanıyorum, yine de yapmam gerekiyor mu?
Zhen Liu

@ZhenLiu Sanırım gerek yok
Law Gimenez

Ayrıca, uygulama cihaza farklı bir yöntemle (ör. Android Studio) zaten yüklenemez. Play Store'dan yükleme / güncelleme çalışır, ancak IAP çalışmaz - OP hatası alırsınız.
JDune

Bunu nasıl ayıklayabiliriz?
Oliver Dixon

3

Bu, google oyunundaki sürümden farklı bir sürüm kullanırsanız gerçekleşir.


3

Sadece benimle olanları eklememe izin verin, bazılarına yardımcı olabilir.

Esas olarak imzalamadan kaynaklanıyordu.

Proje yapısına imzalama ayrıntılarını eklediğimden, her çalıştırdığımda beklenen imzalı apk'nin kurulduğunu düşünüyordum. Ancak derleme türü 'debug' seçildi.

Aşağıdaki düzeltme benim için sorunu çözdü.

  • Yapı tipi 'serbest bırakma' imzalı apk oluşturulan.
  • Apk manuel olarak kuruldu.

2

Benim durumumda, yüklü apk'nin farklı imzaları ve piyasaya yüklenen apk nedeniyle aynı mesajı gördüm.


2

SO ve diğer sitelerdeki birçok yanıtın ve yorumun aksine, Google Play'den test cihazınıza indirilen ürününüzün alfa / beta sürümü ile ön testler yapmak zorunda DEĞİLSİNİZ (alfa / beta yayınlama işlemi genellikle yiyor yarım gün). İmzalı bir yayın apk'sini geliştirici stüdyosundan test cihazınıza yüklemeniz ve yeniden yüklemeniz de gerekmez.

Geliştirici stüdyosunuzdan ADB aracılığıyla doğrudan test cihazınıza yüklenen hata ayıklama uygulamasını kullanarak uygulama faturalandırma hizmetlerinde ön Google Play'de hata ayıklayabilirsiniz. Bunu engelleyen hatalar yaşıyorsanız, muhtemelen kodunuzda yanlış bir şey yaptınız. SKU'nuzun (ürün kimlikleri) CASE'ine ve bunların biçimine özellikle dikkat edin (örneğin, APK'nızı com.alanadim.alan_adim_id olarak yüklerseniz, aynı şekilde ve alan adını sağlayarak bu şekilde satın almaya çalıştığınızdan emin olun) . Ayrıca, itemType'ınıza özellikle dikkat edin - bu, uygulama satın alımlarında veya aboneliklerinde yönetilen / yönetilmeyen için "inapp" veya "subs" olmalıdır.

Fatura kodunuzun doğru bir şekilde kurulmuş olması koşuluyla Chirag Patel'in önerdiği gibi, ön testleriniz sırasında android.test.purchased Sku (ürün kimliği) kullanarak tüm testleri yapın. Bu veriler Google test sistemi tarafından sağlanmadığından, faturalandırma işlemlerinizde imza, belirteç ve yük kontrollerinden geçmek için bu kimliği kontrol edin. Ayrıca, test ürünlerinizden birine satın alma, kilidini açma / yükleme ve sunumunu şemanız boyunca test etmesi için bu kimliği verin. Satın almayı SİLMEK için, aynı Sku VE bu şekilde biçimlendirilmiş bir belirteç dizesini geçirerek satın almanız yeterlidir - başka hiçbir alan ilgili değildir:

    "inapp:"+appContext.getAppContext().getPackageName()+":android.test.purchased";

Bu test aşamasını tamamladıktan sonra, alfa / beta ürününüzle yarı canlı teste geçin. Bir Google grubu (esas olarak bir posta listesi) oluşturun, test kullanıcılarınızın e-postalarını bu gruba ekleyin ve bu grubu (uygulamanızın Google geliştirici listesinin "APK" bölümünde gerçekleştirilen) bu aşamada cihazınızı test etmeye ekleyin / davet edin. Satın alma işlemleri simüle edilir, ancak gerçekte ücretlendirilmez; ancak satın alma işlemlerini temizlemek ve yeniden test etmek için Google, bunları Google cüzdanınızdan geri ödemeniz gerektiğini belirtir. BU, alfa / beta yüklerini ve test kullanıcılarını kullanmak için zaman alıcı bir süreç gerektiren testin tek aşamasıdır.



1

Aynı sorun vardı ve ben DZDomi yazıyı okumadan önce çözüldü değildi. Aniden Google Geliştirici Konsolu'nda etkinleştirmeniz gereken bir ayar olduğu ortaya çıktı. "Uygulama içi satın alımlarda" bölümünde, ürününüz için bir satır vardır ve en sağda bunun için bir durum vardır. AKTİF olmalı!


0

benim sorunum ben debug.keystore ile kontrol etmeye çalıştı, yani eclipse ile çalışan demek. Ben alfa modunda yayınlanmış olan anahtar deposu ile ihraç (test etmeden önce yayınlanması gerekir). ve normalde test edebilirim.


0

Sorun, apk'yi yükledikten sonra bir uygulama içi satın alma eklediğinizde, ancak uygulamayı oyun mağazasında (alfa, beta ve üretim) yayınlamadığınızda da ortaya çıkar.

Bu, temel olarak, APK'yı Play Store'da (alfa, beta ve prodüksiyon) yayınladıktan sonra Uygulama İçi satın alma işlemini eklemeniz gerektiği anlamına gelir. Aksi takdirde, Uygulama İçi satın alma işlemi için satın alma veya sorgulama yapamazsınız.


0

Burada belirtilmeyen bir başka neden, gerçek bir cihazda test yapmanız gerektiğidir. Emülatör gerçekten iyi hale geldiğinde, yapmak kolay bir hatadır.


0

Son zamanlarda google, sistemlerinde bir değişiklik yaptı ve konsolunuza en az bir APK yüklediğinizden, uygulama içi isteklerinizi uygulamanızla herhangi bir sürüm kodu / numarasıyla test edebilirsiniz.

Çapraz referans LINK

gradleHata ayıklama derlemenizi hata ayıklama için imzalayacak şekilde yapılandırın .

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file("my-release-key.jks")
            storePassword "password"
            keyAlias "my-alias"
            keyPassword "password"
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
            ...
        }
    }
}

0

ÇÖZÜM

Google'ın uygulama sürümlerini güncellemesi biraz zaman aldığı için uygulamanızı play store'a yükledikten sonra bir süre bekleyin.


0

Moto c2 + 'da aynı sorun var benim durumumda ben yeniden başlatıldıktan sonra cihaz sorun o mükemmel rune olacak ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.