Android应用内购买 - 托管产品

时间:2012-04-03 08:20:51

标签: android in-app-purchase google-play in-app-billing

我正在尝试使用Android应用内购买系统。我只有一个托管产品,问题是我无法在eclipse的调试模式下测试它。当我签署我的应用程序并将其安装到开发人员控制台和我的手机时,一切正常。

但是当我想用eclipse调试我的应用程序时,我总是得到RESULT_DEVELOPER_ERROR for restoreTransactions()。我想在重新安装应用程序之前检查是否购买了此被管理产品。

测试被管理产品的正确方法是什么?

我假设我收到错误RESULT_DEVELOPER_ERROR因为我在调试模式下工作而且它不是签名的apk。如果这是真的,我如何调试我的托管产品应用程序?

4 个答案:

答案 0 :(得分:1)

这是一个老问题,但有人可能仍然觉得它很有用。

您实际上可以调试inapp购买:

  • 从发布密钥库创建自定义调试密钥库,如下所述:http://blogprogramistyandroid.blogspot.com/2011/04/converting-release-keys-to-debug.html

  • 构建一个发行版.apk(不妨使用您的真实发布脚本,使用proguard和stuff)并将其上传到Play商店帐户的“alpha testing”部分。发布alpha版本。你可能还需要在那里添加测试gmail帐户作为测试人员(只需创建一个空的G +组,该帐户作为所有者) - 但它也可以在没有它的情况下工作,我还没试过。

  • 现在使用您在步骤1中创建的自定义调试密钥进行调试,并确保清单中的应用版本与您在上一步中作为alpha版本上传的版本相匹配。 / p>

  • 您可能需要等待一段时间才能将Alpha版本注册到Google的深度,但这可能仅适用于从应用商店下载测试版本。

瞧,你现在可以一步一步地做什么,然后真正购买真正的产品。

P.S。并且在完成IAP调试后不要忘记删除该自定义调试密钥库。

答案 1 :(得分:0)

如果您使用调试密钥对应用程序进行了签名,则无法对其进行测试。

注意,如果要运行调试器,则只需要使用调试密钥进行签名。我建议使用发布密钥进行签名,并使用良好的日志记录而不是调试。

并确保将部署到设备的相同版本的应用程序上传到开发者控制台(它可以是草稿,不需要发布)。见In-app billing, can't make RESULT_DEVELOPER_ERROR go away

答案 2 :(得分:0)

好吧,您可以调试已签名的应用程序。

在清单中,在android:debuggable="true"标记内设置<application>。启动应用程序,在eclipse中转到DDMS透视图,在Devices选项卡中找到您的应用程序进程,选择它并附加调试器(选项卡菜单中的绿色错误)。

答案 3 :(得分:-1)

请参阅In-app billing reference,具体来说,请参阅错误说明:

  

表示应用程序正在尝试发出应用内结算请求,但应用程序尚未在其清单中声明com.android.vending.BILLING权限。还可以指示应用程序未正确签名,或者您发送了格式错误的请求,例如缺少Bundle密钥的请求或使用无法识别的请求类型的请求。

我认为您会发现问题是模拟器没有安装Google Play商店(由com.android.vending类提供),因此无法支持应用内结算。

Testing in-app billing页面明确指出应用内结算无法与模拟器一起使用:

  

要在应用中测试应用内结算,您必须在Android设备上安装该应用。您无法使用Android模拟器测试应用内结算。