React-native-iap: getProducts sempre retorna nulo

Criado em 13 abr. 2018  ·  34Comentários  ·  Fonte: dooboolab/react-native-iap

@dooboolab Estou recebendo array nulo após chamar o método getProducts após o método de preparação.

📱 iOS 🙏 help wanted 🤖 android

Comentários muito úteis

@axelkennedal ser passivo-agressivo com pessoas que voluntariamente gastam seu precioso tempo tentando ajudá-lo não o levará muito longe.

@JJMoon @dooboolab obrigado pelo excelente trabalho

Todos 34 comentários

@ companytest1206 Isso não deveria acontecer. Você poderia compartilhar mais informações? Como seus códigos, status de produtos, sistema operacional, dispositivos e etc. Para configuração de produtos no aplicativo, consulte o blog .

Aqui está o meu código ..

componente asyncDidMount () {
tentar {
aguardar RNIap.prepare ();
const products = await RNIap.getProducts (itemSkus);
console.log ('Produtos', produtos);
}
pegar (errar) {
console.warn (err.code, err.message);
}
this.fetchData ();

}

O status do meu aplicativo está no modo alfa. Usando o Nexus 6 para depuração.

@ companytest1206 Seu código parece bom. E quanto à configuração do seu produto em playstore ou itunesconnect ? Siga o leia-me e verifique tudo o que postei aqui .

Eu tenho o mesmo problema.

Eu tenho o mesmo problema, mas obtenho uma matriz vazia (não uma matriz nula, o que quer que isso signifique). Eu postei sobre isso aqui .

@systemride @sanilcgs Você poderia compartilhar as plataformas nas quais está tendo problemas ao usar o método getProducts ?

Estou tendo problemas com isso no Android 7.0 (rodando em um LG G6), desenvolvendo no MacOS 10.13.4 @dooboolab

Criei meu aplicativo usando o pacote create-react-native-app . Para integração de compra dentro do aplicativo, desanexei meu aplicativo. Depois disso , integrei o react-native-iap ao meu aplicativo. Para mim, o problema aconteceu no iOS e no Android. Estou usando o Android Studio 3.0.1 e o Xcode 9.3. @dooboolab

De acordo com este README de outra biblioteca, deve ser possível obter os produtos disponíveis durante a execução em um ambiente de depuração (não uma versão Alfa / Beta), correto? (Estou pensando que deve ser o mesmo para esta biblioteca, pois provavelmente depende de como o Google lida com o IAP).

Outra questão relacionada; os SKUs devem ser prefixados com o nome do pacote? Em outras palavras; "unlock_premium" ou "com.kimer.unlock_premium" está correto em meu código quando o ID especificado no Google Play Console é "unlock_premium" ?

@axelkennedal Os SKUS não possuem nenhum formato, são totalmente customizáveis. Em poucas palavras: "unlock_premium" ou "com.kimer.unlock_premium" estão corretos.

Eu entendo que você pode nomear um ID de produto como quiser, mas o que eu perguntei é o que deveria constar em meu código se eu escolhi o ID "unlock_premium" no Google Play Console (não se tenho "permissão" para prefixar ambos Google Play Console e em meu código). Você está dizendo que escolher o ID "unlock_premium" no Google Play Console deve funcionar junto com "unlock_premium" e "com.kimer.unlock_premium", correto? Acho que isso precisa ser declarado em algum lugar do README, porque é confuso.

ATUALIZAR

Agora está funcionando para mim 😄! Tentei algumas coisas, mas não tenho certeza de qual foi a chave para fazê-lo funcionar 🤔 De qualquer forma, foi o que eu fiz:

  1. Reinstalou o pacote
  2. Alterei minha declaração de importação de import InAppPurchase from "react-native-iap;" to "import * as InAppPurchase from 'react-native-iap';"
  3. Alterei meu SKU no código de "com.kimer.unlock_premium" para "unlock_premium"

@axelkennedal você deve usar qualquer nome, mas deve usar no Google Play Console> seu aplicativo> Google Play Store> em produtos de aplicativos. E o MESMO nome você deve usar no código-fonte.

@dooboolab Quando tento executar RNIap.buyProduct (' * ') com meu productID, recebo a mensagem de erro Esse item não está disponível . Na verdade, meu produto gerenciado está no estado ativo. Qual será o problema? Posso listar os detalhes do produto usando RNIap.getProducts (itemSkus). Preciso adicionar a chave de licença ao meu aplicativo ??

@sanilcgs você poderia me dizer em qual plataforma você está enfrentando erros?

@dooboolab Estou enfrentando o problema na plataforma Android e desenvolvendo no MacOS High Sierra (10.13.4)

@sanilcgs, você está usando nosso módulo mais recente, '0.3.23'? Também um problema semelhante pode ser encontrado aqui. https://github.com/dooboolab/react-native-iap/issues/142

@dooboolab Sim, estou usando '0.3.23'. Meu problema agora é com RNIap.buyProduct (' * ') .

@sanilcgs Postei algumas informações de ajuda para isso na edição acima. Vou colar aqui novamente. Verifique abaixo.

         Do's

1) Crie apk de sinal para seu aplicativo.
2) Faça upload do seu apk na Google Play Store.
3) Crie um produto para sua aplicação.
4) aguarde 6-12 horas para atualizar o item na loja.
5) Conceda permissões de faturamento em Manifest.xml

           Don't

1) Não use o emulador para testar, ele não oferece suporte para serviços de cobrança.
2) Não use apk não assinado para serviços de cobrança.

Leia mais: http://www.androidhub4you.com/2013/03/how-to-inegrate-in-app-purchase-billing.html#ixzz5DqRctVJp

@dooboolab Como já disse, meu aplicativo ainda não foi lançado para produção. Agora eu lancei apenas minha versão alfa. Posso testar este RNIap.buyProduct (' * * ') ** com minha versão alfa ou preciso liberar minha produção para compra de teste ???

@sanilcgs Se você leu acima completamente, você deve estar ciente de que não precisa lançar o apk para produção. Apenas alfa ou beta é bom, mas seu apk deve ser assinado conforme explicado. Verifique acima mais uma vez e veja o que está faltando primeiro.

@dooboolab O que fazer e não fazer acima é útil. Para iniciantes, isso seria realmente útil para explicar na documentação que você só pode testar isso em uma versão alfa / beta e se você testar isso em um dev build on emulator, ele sempre retornará um array vazio. Não vejo nenhuma menção disso em qualquer lugar. Fico feliz em adicionar isso em uma solicitação de pull, se desejar.

@systemride Qualquer RP é bem-

@axelkennedal fez todas essas coisas, ainda estou obtendo um array vazio no iOS. Alguma ideia?
btw ... Ainda estou testando em um simulador. É necessário testá-lo em um dispositivo iOS real?

@axelkennedal getProducts() no iOS funciona bem no simulador. As ações de compra devem ser testadas no dispositivo real com a conta sandbox apple.
Você pode não ter concluído as configurações de produto da App Store perfeitamente.

@JJMoon se você leu meus comentários, você saberia que estou no Android, não no iOS.

@axelkennedal ser passivo-agressivo com pessoas que voluntariamente gastam seu precioso tempo tentando ajudá-lo não o levará muito longe.

@JJMoon @dooboolab obrigado pelo excelente trabalho

@raduflp lol do que você está falando? Acabei de apontar que estamos em plataformas diferentes

@raduflp Obrigado por sua amável resposta e preocupação. Não acho que @axelkennedal tenha a intenção de ser agressivo. Ele está muito sobrecarregado usando react-native-iap . Parece que esse problema pode ser resolvido, então vou fechá-lo. Além disso, qualquer PR é apreciado e pode ajudar as novas gerações.

Tente. Trabalhe para mim:

"Você também precisa adicionar sua conta de teste a outra lista especial de contas" Contas do Gmail com acesso de teste ", você pode encontrar isso na configuração da conta do jogo (não no projeto!). Na página onde você pode ver uma lista de seus projetos, vá para configurações e, em seguida, na página "Detalhes da conta" (role para baixo, está quase no final da página), você encontrará a lista "Contas do Gmail com acesso de teste". "

Configurar licenciamento de aplicativo
Para configurar o licenciamento de aplicativos, comece adicionando sua lista de endereços do Gmail do testador no Play Console.

Acesse o Play Console.
Selecione Configurações Configurações> Detalhes da conta.
Em "Teste de licença", adicione os endereços do Gmail dos testadores.
Na parte superior da tela, selecione Salvar.

Eu integrei o react-native-iap e carreguei meu apk assinado para a versão beta na play store e também adicionei um plano de assinatura. Estou tentando obter a lista de assinatura por ID de assinatura no modo de depuração, que sempre retorna uma matriz vazia. Posso realmente testar a assinatura no modo de depuração?

@ShridharCodewave você usa um dispositivo real ou simulador?

@NarekChang Eu uso um dispositivo real e agora de alguma forma estou conseguindo as assinaturas.

Esta página foi útil?
0 / 5 - 0 avaliações