测试钛的Android应用内计费模块

3

有人知道如何在钛合金调试模式下正确测试Android应用内购买吗?

之前,在Titanium Studio调试时,我成功地测试了应用内购买并创建了真实交易。那是因为之前,我使用开发版.apk不正确地创建了我的Google Play商店列表,如下所示: http://developer.appcelerator.com/question/123704/what-keystore-does-titanium-studio-use-to-build-android-app-during-development

因此,Google Play将我的dev_keystore与我的应用内购买代码关联起来。

然而,当我尝试按照以下步骤生成密钥对/证书构建和上传生产版本时: wiki.appcelerator.org/display/guides/Distributing+Android+apps

Google Play商店(正确地)拒绝了我的生产候选版本,并抱怨我的APK已经使用与原始上传不同的证书进行签名:

You uploaded an APK that is signed with a different certificate to your previous APKs. 
You must use the same certificate. Your existing APKs are signed with the certificate(s) 
with fingerprint(s): [ SHA1: ...:9D:47:9F ] and the certificate(s) used to sign the APK 
you uploaded have fingerprint(s): [ SHA1: ...:5D:E2:4E ]

因此,我不得不删除我的Google Play商店列表,并从头开始使用由上述应用程序加速器指南描述的已签名APK进行重新创建。
这现在导致我的应用内购买与已签名APK相关联,这意味着当我测试应用的开发版本并尝试进行应用内购买时,会出现以下提示:
This version of the application is not configured for billing through Google Play

这不是一个时间问题(我已经等待了24小时),正如stackoverflow.com/questions/11068686/this-version-of-the-application-is-not-configured-for-billing-through-google-pla所建议的那样。

这是因为我的开发构建中的dev_keystore与内购买代码相关联的证书不匹配所导致的。

我想象如果Titanium Studio允许我在调试时指定我的应用程序证书,就可以解决这个问题,如下所示: http://jira.appcelerator.org/browse/TISTUD-1214

在此期间,一个测试性的解决方法是,我创建了一个额外的、独立的“测试”谷歌播放应用程序,并将其与我的开发.apk(而不是我的签名apk)关联起来,该应用程序具有相同的应用内购买。在测试期间,我只需要更改:

require('ti.inappbilling').setPublicKey(...)

我希望将指向测试项目而不是真实项目的指针。当我对支付感到满意时,我将使用真实密钥进行构建。

这是一个非常低劣的解决方法,我希望有人有更好的解决方法。

1个回答

1

TISTUD-3669 添加了指定非生产构建使用的密钥库的功能。使用此功能,您将不需要想出的解决方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接