Ten błąd może być spowodowany kilkoma przyczynami.
Oto lista wymagań dotyczących testowania Google IAB.
Wymagania wstępne:
- AndroidManifest musi zawierać uprawnienie „com.android.vending.BILLING” .
- APK jest wbudowany w tryb wydania .
- APK jest podpisany przy użyciu certyfikatu (certyfikatów) wydania . (Ważne: „Podpisywanie aplikacji przez Google Play” działa tylko wtedy, gdy pobierasz bezpośrednio z Google Play Play!)
- APK jest przesyłany do kanału dystrybucji alfa / beta (wcześniej - jako wersja robocza) do konsoli programisty co najmniej raz. (zajmuje to trochę czasu ~ 2h-24h ).
- Produkty IAB są publikowane, a ich status jest ustawiony na aktywny .
- Konta testowe są dodawane w konsoli programisty.
Wymagania testowe:
- Testowy plik APK ma tę samą wersjęKod przesłany do konsoli programisty.
- Testowy plik APK jest podpisany za pomocą tego samego certyfikatu (certyfikatów), co ten przesłany do dev.console.
- Konto testowe (nie programista) - jest kontem głównym na urządzeniu. (Konto główne może nie być konieczne - zgodnie z komentarzem @MinosL )
- Konto testowe jest włączone jako tester i jest powiązane z prawidłową metodą płatności . ( @Kyone )
PS: Debugowanie za pomocą certyfikatu wydania : https://stackoverflow.com/a/15754187/1321401 (Thnx @dipp dla łącza)
PPS: Chciałem tworzyć tę listę już od dawna.
Thnx @zlgdev , @Kyone , @MinosL dla aktualizacji
Ahh znalazł rozwiązanie po kilku godzinach prób.
źródło
To samo stanie się, jeśli opublikowana wersja nie jest taka sama jak wersja testowana na telefonie.
Na przykład przesłana wersja to
android:versionCode="1"
, a wersja, którą testujesz na telefonie, toandroid:versionCode="2"
źródło
android:versionCode="1"
a telefon jestandroid:versionCode="2"
dozowany, jest w porządku, czy muszę zmienić moją aplikację Google Play?Musisz podpisać swój APK za pomocą certyfikatu na żywo. Następnie zainstaluj to na swoim urządzeniu testowym. Następnie możesz przetestować InAppBilling. Jeśli testujesz aplikację przez bezpośrednie uruchomienie zaćmienia urządzenia (w trybie debugowania), pojawi się ten błąd.
Jeśli używasz
android.test.purchased
jako jednostki SKU, będzie działać przez cały czas, ale nie będziesz mieć dewelopera Payload w ostatecznej odpowiedzi.Jeśli korzystasz z własnego szkicu w elemencie aplikacji, możesz go przetestować do końca, ale zostaniesz obciążony opłatą, więc będziesz musiał go później zwrócić.
Nie można kupować przedmiotów za pomocą tego samego konta Gmail, którego używasz w konsoli programistycznej Google Play.
źródło
W konsoli programisty:
Settings
->Account details
->License Testing
-> Konta Gmail z dostępem testowymi wpisz tutaj swoje konta
źródło
Jeśli jesteś tutaj od 2018 roku, musisz pobrać APK bezpośrednio ze Sklepu Play i zainstalować „pochodną” APK. Może to dlatego, że Google Play Store ma funkcję „Podpisywanie aplikacji przez Google Play”.
źródło
Stanie się tak, jeśli użyjesz innej wersji APK niż ta w Google Play.
źródło
Pozwól mi dodać, co się ze mną stało, może komuś pomóc.
Było to głównie spowodowane podpisaniem umowy.
Ponieważ dodałem szczegóły podpisywania w strukturze projektu, myślałem, że za każdym razem, gdy uruchamiam, instaluje się oczekiwany podpisany apk. Ale wybrano typ kompilacji „debugowanie”.
Poniższa poprawka rozwiązała problem dla mnie.
źródło
W moim przypadku zobaczyłem tę samą wiadomość z powodu różnych podpisów zainstalowanej aplikacji i przesłanej na apk rynku.
źródło
W przeciwieństwie do wielu odpowiedzi i komentarzy na temat SO i innych witryn NIE musisz przeprowadzać wstępnych testów wersji alfa / beta produktu, który został pobrany z Google Play na urządzenie testowe (proces publikacji alfa / beta często zjada połowa dnia). Nie musisz też ładować i ponownie ładować podpisanego pakietu APK ze studia programisty na urządzenie testowe.
Możesz debugować wstępną wersję Google Play w usługach rozliczeniowych aplikacji za pomocą aplikacji do debugowania załadowanej ze studia programisty bezpośrednio na urządzenie testowe za pośrednictwem ADB. Jeśli występują błędy, które temu zapobiegają, prawdopodobnie zrobiłeś coś złego w kodzie. Zwróć szczególną uwagę na CASE swojego kodu SKU (identyfikatory produktu) i ich format (na przykład, jeśli ładujesz pakiet APK jako com.mydomain.my_product_id, upewnij się, że próbujesz go kupić w ten sposób - podając tę samą obudowę i domenę) . Zwróć również szczególną uwagę na swój itemType - powinien to być odpowiednio „inapp” lub „subs” w przypadku odpowiednio zarządzanych / niezarządzanych zakupów lub subskrypcji aplikacji.
Zgodnie z sugestią Chirag Patel, pod warunkiem, że masz poprawnie ustalony kod bilingowy, przeprowadź wszystkie testy przy użyciu Sku android.test.purchased (ID produktu) podczas wstępnych testów. Sprawdź ten identyfikator podczas operacji rozliczeniowych, aby przekazać go przez kontrolę podpisu, tokena i ładunku, ponieważ dane te nie są dostarczane przez system testowy Google. Dodatkowo podaj jeden z produktów testowych ten identyfikator, aby przetestować jego zakup, odblokowanie / załadowanie i prezentację przez cały schemat. Aby WYCZYŚĆ zakup, po prostu go zużyj, przekazując ten sam SKU ORAZ sformatowany w ten sposób ciąg tokenów - żadne inne pola nie są istotne:
Po zakończeniu tej fazy testowania przejdź do testów pół-na żywo z produktem alfa / beta. Utwórz grupę Google (zasadniczo listę mailingową), dodaj do niej wiadomości e-mail użytkowników testowych i dodaj / zaproś tę grupę do przetestowania urządzenia na tym etapie (wykonywane w części „APK” na liście deweloperów aplikacji Google). Zakupy będą symulowane, ale nie będą faktycznie obciążane - jednak w celu wyczyszczenia i ponownego przetestowania zakupów Google wskazuje, że musisz je zwrócić z portfela Google. TO jest jedyna faza testów, która wymaga czasochłonnego procesu korzystania z obciążeń alfa / beta i użytkowników testowych.
źródło
Jeśli chcesz debugować IAB, musisz:
Prześlij do Google Play wersję aplikacji z uprawnieniem IAB w manifeście:
Dodaj produkt do swojej aplikacji w Google Play: Administrowanie rozliczeniami w aplikacji
Ustaw podpisany niestandardowy magazyn kluczy debugowania: skonfiguruj środowisko Eclipse, aby korzystało z podpisanego magazynu kluczy
źródło
Miałem ten sam problem i nie został rozwiązany, zanim przeczytałem post z DZDomi. Nagle okazało się, że w Konsoli programisty Google jest ustawienie, które należy włączyć. W sekcji „Zakupy w aplikacjach” znajduje się wiersz dotyczący Twojego produktu, a po prawej stronie znajduje się jego status. Powinno być AKTYWNE!
źródło
mój problem polegał na tym, że próbowałem to sprawdzić za pomocą debug.keystore, mam na myśli uruchomienie go za pomocą eclipse. mój telefon i wtedy mogłem przetestować go normalnie.
źródło
Problem występuje również wtedy, gdy dodałeś zakup w aplikacji po przesłaniu apk, ale nie opublikowałeś aplikacji w sklepie Play (wersja alfa, beta i produkcja).
Co w zasadzie oznacza, że musisz dodać zakup w aplikacji PO opublikowaniu apka w sklepie Play (wersja alfa, beta i produkcja). W przeciwnym razie nie będzie można kupić ani zapytać o zakup w aplikacji.
źródło
Innym powodem nie wymienionym tutaj jest to, że musisz testować na prawdziwym urządzeniu. Emulator staje się naprawdę dobry, więc łatwo popełnić błąd.
źródło
Ostatnio Google wprowadziło zmianę w swoich systemach, a ponieważ przesłałeś co najmniej jeden pakiet APK do konsoli, możesz przetestować swoje żądania w aplikacji za pomocą aplikacji z dowolnym kodem / numerem wersji.
Odsyłacz LINK
źródło
ROZWIĄZANIE
Poczekaj chwilę po przesłaniu aplikacji do sklepu Play, ponieważ Google potrzebuje trochę czasu na aktualizację wersji aplikacji. To zadziała!
źródło
Mam ten sam problem w moto c2 + w moim przypadku jest to problem z urządzeniem po ponownym uruchomieniu, a następnie rune idealnie ...
źródło