Este erro pode ser causado por vários motivos.
Aqui está a lista de requisitos para o teste do Google IAB.
Pré-requisitos:
- O AndroidManifest deve incluir a permissão "com.android.vending.BILLING" .
- O APK é construído no modo de liberação .
- O APK é assinado com o (s) certificado (s) de liberação . (Importante: com "App Signing by Google Play", só funciona se você baixar diretamente do GooglePlayStore!)
- O APK é carregado no canal de distribuição alfa / beta (anteriormente - como rascunho) no console do desenvolvedor pelo menos uma vez. (leva algum tempo ~ 2h-24h ).
- Os produtos IAB são publicados e seu status definido como ativo .
- As contas de teste foram adicionadas no console do desenvolvedor.
Requisitos de teste:
- O APK de teste tem o mesmo código de versão do carregado no console do desenvolvedor.
- O APK de teste é assinado com os mesmos certificados que o carregado no dev.console.
- Conta de teste (não desenvolvedor) - é a conta principal do dispositivo. (A conta principal pode não ser necessária - de acordo com o comentário do @MinosL )
- A conta de teste é ativada como testador e está vinculada a uma forma de pagamento válida . ( @Kyone )
PS: Depuração com certificado de versão : https://stackoverflow.com/a/15754187/1321401 (Thnx @dipp para o link)
PPS: Queria fazer essa lista já há muito tempo.
Thnx @zlgdev , @Kyone , @MinosL para atualizações
Ahh encontrou a solução depois de tentar por algumas horas.
fonte
O mesmo acontecerá se sua versão publicada não for a mesma que você está testando no seu telefone.
Por exemplo, a versão carregada é
android:versionCode="1"
e a versão que você está testando no seu telefone éandroid:versionCode="2"
fonte
android:versionCode="1"
e o telefone está naandroid:versionCode="2"
dose ok ou eu tenho que mudar meu apk google play?Você precisa assinar seu APK com seu certificado ativo. Em seguida, instale isso no seu dispositivo de teste. Você pode testar o InAppBilling. Se você estiver testando seu aplicativo por execução direta via eclipse para o dispositivo (no modo de depuração), receberá esse erro.
Se você estiver usando
android.test.purchased
como o SKU, ele funcionará completamente, mas você não terá o developerPayload em sua resposta final.Se você estiver usando seu próprio rascunho no item do aplicativo, poderá testar todo o caminho, mas será cobrado e, portanto, terá que reembolsá-lo posteriormente.
Você não pode comprar itens com a mesma conta do Gmail que você usa para o console de desenvolvimento do Google Play.
fonte
No console do desenvolvedor:
Settings
->Account details
->License Testing
-> Contas do Gmail com acesso de testee digite aqui suas contas
fonte
Se você veio de 2018, precisa baixar o APK diretamente da Play Store e instalar o APK "derivado". Talvez seja por causa da Play Store do Google ter um recurso "App Signing by Google Play".
fonte
Isso acontecerá se você usar uma versão diferente do apk da versão do Google Play.
fonte
Deixe-me adicionar o que aconteceu comigo, pode ajudar alguém.
Foi principalmente devido à assinatura.
Desde que adicionei os detalhes de assinatura na estrutura do projeto, eu pensava que toda vez que executo, o apk assinado esperado está sendo instalado. Mas o tipo de compilação 'debug' foi selecionado.
A correção abaixo resolveu o problema para mim.
fonte
No meu caso, vi a mesma mensagem devido às diferentes assinaturas do apk instalado e a um upload do apk do mercado.
fonte
Ao contrário de muitas respostas e comentários no SO e em outros sites, você NÃO precisa executar testes preliminares com uma versão alfa / beta do seu produto que foi baixada do Google Play para o seu dispositivo de teste (o processo de publicação alfa / beta geralmente consome metade do dia). Você também não precisa carregar e recarregar um apk de versão assinada do seu estúdio de desenvolvedor no seu dispositivo de teste.
É possível depurar o Google Play preliminar nos serviços de cobrança de aplicativos usando o aplicativo de depuração carregado do seu estúdio de desenvolvedor diretamente no seu dispositivo de teste via ADB. Se você estiver enfrentando erros que impedem isso, provavelmente você fez algo errado no seu código. Preste muita atenção ao CASE dos seus SKUs (IDs do produto) e seu formato (por exemplo, se você carregar o APK como com.mydomain.my_product_id, tente comprá-lo dessa maneira - fornecendo o mesmo caso e domínio) . Além disso, preste muita atenção ao seu itemType - deve ser "inapp" ou "subs" para gerenciados / não gerenciados em compras ou assinaturas de aplicativos, respectivamente.
Conforme sugerido por Chirag Patel, desde que você tenha seu código de cobrança devidamente estabelecido, execute todos os testes usando o sku android.test.purchased (ID do produto) durante seus testes preliminares. Verifique esse ID em todas as suas operações de cobrança para passar por verificações de assinatura, token e carga útil, pois esses dados não são fornecidos pelo sistema de teste do Google. Além disso, forneça esse ID a um de seus produtos de teste para testar sua compra, desbloqueio / carregamento e apresentação durante todo o esquema. Para LIMPAR a compra, simplesmente consuma-a, passando o mesmo Sku AND uma sequência de token formatada dessa maneira - nenhum outro campo é relevante:
Depois de concluir esta fase do teste, passe para o teste semi-ativo com seu produto alfa / beta. Crie um grupo do Google (essencialmente uma lista de endereçamento), adicione seus e-mails de usuários de teste e adicione / convide este grupo para testar seu dispositivo nesta fase (realizada na parte "APK" da listagem de desenvolvedores do Google do seu aplicativo). As compras serão simuladas, mas não serão cobradas de fato. No entanto, para limpar e testar novamente as compras, o Google indica que você deve reembolsá-las da carteira do Google. Esta é a única fase do teste que requer o processo demorado de usar cargas alfa / beta e usuários de teste.
fonte
Se você deseja depurar o IAB, o que você precisa fazer é:
Envie ao Google Play uma versão do seu aplicativo com a permissão IAB no manifesto:
Adicione um produto ao seu aplicativo no Google Play: Administrando o faturamento no aplicativo
Defina um keystore de depuração personalizado assinado: Configure o Eclipse para usar o keystore assinado
fonte
Tinha o mesmo problema e não foi resolvido antes de ler o post do DZDomi. De repente, ocorreu que existe uma configuração no Google Developer Console que você precisa ativar. Na seção "Em compras de aplicativos", há uma linha para o seu produto e, à direita, há um status para ele. Deve ser ATIVO!
fonte
meu problema era que eu tentei verificá-lo com o debug.keystore, quero dizer, executá-lo através do eclipse. Eu o exportei com o keystore com o qual publiquei no modo alfa (ele deve ser publicado antes que você possa testá-lo). meu telefone e do que eu poderia testá-lo normalmente.
fonte
O problema também ocorre quando você adiciona uma compra no aplicativo após fazer o upload do apk, mas não publica o aplicativo na loja de jogos (alfa, beta e produção).
O que basicamente significa que você deve adicionar a compra no aplicativo APÓS a publicação do apk na Play Store (alfa, beta e produção). Caso contrário, você não poderá comprar ou consultar a compra no aplicativo.
fonte
Outro motivo não mencionado aqui é que você precisa testar em um dispositivo real. Com o emulador se tornando realmente bom, é um erro fácil de cometer.
fonte
Recentemente, o Google implementou uma alteração em seus sistemas e, como você enviou pelo menos um APK para seu console, você pode testar suas solicitações no aplicativo com seu aplicativo com qualquer código / número de versão.
Referência cruzada LINK
fonte
SOLUÇÃO
Espere um pouco depois de fazer o upload do seu aplicativo na Play Store, porque o Google leva algum tempo para atualizar as versões do aplicativo.
fonte
Eu tenho o mesmo problema no moto c2 + no meu caso, é problema do dispositivo uma vez que eu reiniciar, em seguida, ele vai rune perfeito ...
fonte