测试适用于Android的Titanium应用内结算模块

时间:2013-06-08 01:35:10

标签: android titanium keystore signing billing

有没有人知道如何在钛调试模式下正确测试应用购买中的实时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从头开始重新创建,如上面引用的appcelerator指南所述。

现在这导致我的应用内购买与已签名的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工作室允许我在调试时指定我的应用程序证书证书,我可以解决这个问题: http://jira.appcelerator.org/browse/TISTUD-1214

在此期间,调试购买的测试解决方法是我创建了一个额外且独立的“测试”重复谷歌播放应用程序,其中包含相同的应用程序购买并将其与我的开发.apk(而不是我签名的apk)相关联。在测试过程中,我只需要改变:

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

指向测试项目而不是真实项目。然后,当我对付款感到满意时,我将使用真实密钥进行构建。

这是一个非常不合标准的解决方法,我希望有人有更好的做事方式。

1 个答案:

答案 0 :(得分:1)

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