'Authentication is required. You must sign into your Google account' 测试 IAB 时
'Authentication is required. You must sign into your Google account' when testing IAB
我一直在为 android 开发一个简单的游戏,在应用计费中使用时我遇到了很多问题 运行。为了执行 IAB,我使用了 TrivialDriveExample here 中提供的实用程序 classes。我已相应地复制并修改了本示例中提供的 MainActivity class 中的代码以使用 IAB。我还关注了 android 开发者页面上描述如何在开发者控制台上设置 IAB 的文档。
但是,当尝试使用以下代码在应用程序中测试购买产品时,出现问题标题中描述的错误。
helper.launchPurchaseFlow(game.getActivity(), sku, RC_REQUEST, getPurchaseListener(game));
(其中 helper 是上面 google 代码 link 中提供的 IabHelper class 的实例,RC_REQUEST
是设置为 10001 的常量,如简单驱动器示例中的 MainActivity,其中 sku 是产品的 sku - 如开发人员控制台中所示)。在这里,getPurchaseListener returns 一个 IabHelper.OnIabPurchaseFinishedListener
的实例(在示例代码的 util 包中提供)。
我确定的是:
- sku正确,与开发者控制台提供的完全一致。
- 作为 alpha 上传到开发者控制台的 APK 与安装在设备上的 APK 相同(并且使用我的开发者密钥而不是调试密钥签名)。
- 我的帐户和所有使用过的测试帐户都在为 alpha 测试注册的 google 组和从开发者控制台接收 LICENSED 响应的帐户列表中。
- 代码中使用的每个object != null
- 我可以在我的应用程序上测试 Google 玩游戏服务(成就和排行榜)。
- 这与我正在开发的应用程序有关,因为 IAB 适用于其他应用程序(已使用 Clash of Clans 和 Infectanator 进行测试)。
我试过的:
- 正在从我的设备中删除我的开发者 google 帐户,只留下一个测试帐户(+在我的设备上没有安装我的开发者帐户的情况下等待一夜,然后在早上使用我的测试帐户对其进行测试)。
- 正在清除所有 google 播放数据和缓存。
- 正在重新启动我的 device/reinstalling 应用程序。
我在尝试使用 android 的测试购买(使用 sku 'android.test.purchase')时也遇到了另一个错误。我明白了:
Error while retrieving information from server [DF-DFERH-01]
如上所述,我已清除 google 播放数据,删除我的帐户并重新添加,重新启动我的设备并重新安装应用程序。同样,这仅发生在我目前正在开发的应用程序中,而不发生在任何其他具有 IAB 的应用程序中。
编辑
请注意,我已经查看了其他人关于此错误的问题,并尝试了提供的解决方案无济于事。
集成了 IAB 的应用程序必须已发布 以便 Play 商店为其启用计费,它不会工作所以只要它在 Draft 中——文档似乎对此不是很清楚。
因此,请确保您确实发布了该应用程序(别担心,如果您只有 alpha and/or beta 版本,它不会在 Play 商店中为普通人列出)和,像往常一样,给Play商店一些时间来吸收它。
我一直在为 android 开发一个简单的游戏,在应用计费中使用时我遇到了很多问题 运行。为了执行 IAB,我使用了 TrivialDriveExample here 中提供的实用程序 classes。我已相应地复制并修改了本示例中提供的 MainActivity class 中的代码以使用 IAB。我还关注了 android 开发者页面上描述如何在开发者控制台上设置 IAB 的文档。
但是,当尝试使用以下代码在应用程序中测试购买产品时,出现问题标题中描述的错误。
helper.launchPurchaseFlow(game.getActivity(), sku, RC_REQUEST, getPurchaseListener(game));
(其中 helper 是上面 google 代码 link 中提供的 IabHelper class 的实例,RC_REQUEST
是设置为 10001 的常量,如简单驱动器示例中的 MainActivity,其中 sku 是产品的 sku - 如开发人员控制台中所示)。在这里,getPurchaseListener returns 一个 IabHelper.OnIabPurchaseFinishedListener
的实例(在示例代码的 util 包中提供)。
我确定的是:
- sku正确,与开发者控制台提供的完全一致。
- 作为 alpha 上传到开发者控制台的 APK 与安装在设备上的 APK 相同(并且使用我的开发者密钥而不是调试密钥签名)。
- 我的帐户和所有使用过的测试帐户都在为 alpha 测试注册的 google 组和从开发者控制台接收 LICENSED 响应的帐户列表中。
- 代码中使用的每个object != null
- 我可以在我的应用程序上测试 Google 玩游戏服务(成就和排行榜)。
- 这与我正在开发的应用程序有关,因为 IAB 适用于其他应用程序(已使用 Clash of Clans 和 Infectanator 进行测试)。
我试过的:
- 正在从我的设备中删除我的开发者 google 帐户,只留下一个测试帐户(+在我的设备上没有安装我的开发者帐户的情况下等待一夜,然后在早上使用我的测试帐户对其进行测试)。
- 正在清除所有 google 播放数据和缓存。
- 正在重新启动我的 device/reinstalling 应用程序。
我在尝试使用 android 的测试购买(使用 sku 'android.test.purchase')时也遇到了另一个错误。我明白了:
Error while retrieving information from server [DF-DFERH-01]
如上所述,我已清除 google 播放数据,删除我的帐户并重新添加,重新启动我的设备并重新安装应用程序。同样,这仅发生在我目前正在开发的应用程序中,而不发生在任何其他具有 IAB 的应用程序中。
编辑 请注意,我已经查看了其他人关于此错误的问题,并尝试了提供的解决方案无济于事。
集成了 IAB 的应用程序必须已发布 以便 Play 商店为其启用计费,它不会工作所以只要它在 Draft 中——文档似乎对此不是很清楚。
因此,请确保您确实发布了该应用程序(别担心,如果您只有 alpha and/or beta 版本,它不会在 Play 商店中为普通人列出)和,像往常一样,给Play商店一些时间来吸收它。