【发布时间】:2018-10-08 08:04:54
【问题描述】:
我开发了一个包含应用内购买(非消耗品)的 Android 应用,一切正常。
现在我必须为我的应用创建一个新的 PRO 版本,而不是非消耗品,而是订阅产品。
这就是我所做的:
- 创建了一种名为 pro 的新风味。
- 将这种新风格的 applicationId 从 com.mydomain.mypackage 到 com.mydomain.mypackage.pro。
我可以毫无问题地在调试和发布模式下编译和安装我的免费和专业版本,并且两个版本同时安装在我的设备中,并显示它们各自的名称和图标,所以我想我已经正确完成了这两个步骤.
- 在 Google 中创建了一个 ID 为 com.mydomain.mypackage.pro 的新应用程序。
- 填写了 Google 开发者控制台中的所有字段和图像,以便新应用已完全配置并可以发布(它显示绿色复选标记)。
- 使用这些 ID com.mydomain.mypackagepro.plan1monthly、com.mydomain.mypackagepro.plan1annual、com.mydomain.mypackagepro.plan2monthly 和 com.mydomain.mypackagepro.plan2annual 创建了 4 个订阅项目。他们都很活跃。 请注意,在这些 id 中我使用的是 mypackagepro 而不是 mypackage.pro,我想这不是问题。
- 在我的 pro flavor 代码中,我将 InApp Billing 密钥设置为新的,取自服务和 API。
- 在我的代码中,我使用我以前版本的代码询问新的项目 ID,所以我想这没关系,因为它适用于 inapp 消耗品。我仔细检查了请求的 ID 是否与我在 Google Play 控制台中设置的 ID 相同。
- 在发布模式下为专业版生成签名的 APK。
- 在我的设备中安装了这个 APK。
- 将此 APK 上传到我的 Alpha 频道并发布(我很确定它已发布,而不是处于草稿模式或类似模式)。我已将 2 个帐户作为测试人员(其中一个是我自己的开发者帐户)添加到此频道。
之后,如果我启动我的应用程序,返回的库存是空的(我想这没关系,因为我还没有购买任何订阅),但如果我请求这些 Id 的详细信息,getSkuDetails 方法返回 null 4 项。
我等了 10 个小时,以防 apk 没有完全发布。但是在这 10 个小时之后,问题仍然存在,queryInventoryAsync 返回一个空库存,getSkuDetails 为每个订阅返回 null。
我错过了什么吗??
--- 编辑 ---
我必须添加更多信息。 在仔细检查该应用程序是否发布为 Alpha 版后,我尝试使用此链接下载它:
https://play.google.com/apps/testing/com.mydomain.mypackage.pro
这向我显示了一个网页,告诉我我已被邀请测试该应用程序并且我必须接受邀请。
除此之外,还有一个从 Play 商店下载应用程序的链接。 所以我接受邀请并从 Play 商店下载并安装该应用程序。 我很确定这会修复错误,但不幸的是问题仍然存在,每次我为订阅调用 getSkuDetails 时,该方法都会返回 null。
所以:
- 应用已发布 (alpha)
- 我是一名测试人员并接受了邀请。
- 从 Play 商店下载并安装 Apk。
- 4 个订阅处于活动状态
- 订阅的 id 与上的 id 相同 getSkuDetails,没有错别字。
- 初始化iabhelper的Key ID对应com.mydomain.mypackage.pro。
但是,getSkuDetails 返回 null。
【问题讨论】: