【问题标题】:Titanium in-app purchase with ti.storekit - product not found使用 ti.storekit 进行 Titanium 应用内购买 - 未找到产品
【发布时间】:2015-08-14 10:39:29
【问题描述】:

我已将我的应用内产品全部设置为通过 ti.storekit 在 iTunes Connect 中购买:

我的 Appcelerator 4.0 应用程序编译并部署到我的设备(开发配置文件)。 ti.storekit 链接到我的应用程序并编译。就没有未处理的异常而言,它似乎也可以正确执行。但它告诉我它找不到我的应用内购买产品。我尝试将“15 Keys”和“15Keys”交给 ti.storekit。我不确定它想要哪一个(参考名称或产品 ID) - 但无论如何都不起作用。

Here's the documentation I've been following.

这是 ti.storekit 中产生错误消息的函数:

function requestProduct(identifier, success)
{
    Storekit.requestProducts([identifier], function (evt) {
        if (!evt.success) {
            alert('ERROR: We failed to talk to Apple!');
        }
        else if (evt.invalid) {
            alert('ERROR: Invalid product: ' + identifier);
        }
        else {
            success(evt.products[0]);
        }
    });
}

正在执行“else if”行:alert('ERROR: Invalid product: ' + identifier); 我究竟做错了什么?我应该将参考名称(15 键)还是产品 ID(15 键)交给它?既然我都试过了,但都不起作用,我该如何解决这个问题?我做错了什么?

编辑:

我不清楚 3 件事:

1- 我应该进入我的 ipad 上的设置并使用我的 TEST USER 苹果沙盒帐户登录到 iTunes/store 吗?我无法这样做,因为它一直要求我输入信用卡。测试我过去使用过的信用卡(在其他非 iOS 系统上),例如 4111111111111111 不起作用,我无法继续登录。甚至不确定我是否应该这样做。如果是这样,我可以使用哪些 CC 凭据?我应该为此使用真正的 CC 吗?根据我在其他文章和帖子中阅读的所有内容,它说永远不要将测试帐户链接到 CC 号码......那么为什么苹果不让我在没有的情况下让我的测试用户登录到我的苹果设备(在设置中)输入信用卡?

2- 我没有完全按照https://github.com/appcelerator-modules/ti.storekit/blob/master/ios/example/app.js 中的步骤进行操作,因为在我的应用程序中没有可下载的内容、没有可托管的内容等。在我的应用程序中,用户可以购买密钥,它们只是我的数字实体应用程序 - 无需下载。所以我已经删除了所有与下载/托管有关的代码/步骤。

3- 我的应用程序的 1.0.0 版正在等待应用商店中的审核。此版本没有 ti.storekit,也没有应用内购买。没有。但是我正在开发一个更新版本,其中包含我最新的 appcelerator 4.0 项目中的所有 storekit 和应用内购买的东西。这不应该在我的开发环境中、在我连接的 ipad 上、在开发版本中工作吗?事实上,我有 1.0.0 等待审查,没有 storekit 的东西,应该与我在 storekit 的开发帐户中的新版本无关,对吧?我也对这条消息感到困惑:

我是否需要先向 Apple 提交一个新版本,然后我的 DEV storekit 才能工作?如果是这样,这似乎很奇怪,就好像应用商店发布候选与我在本地环境中开发的东西有关。此消息是否表明为什么我的 dev storekit 东西不起作用?我的应用内购买产品似乎配置正确,但我是否应该能够在 dev/sandbox 中与此连接,无论 1.0 应用(无 storekit)在应用商店中等待审核吗?

感谢大家的帮助...我一定错过了一些我没有看到的关键步骤。

【问题讨论】:

  • 您是否检查过您是否使用沙盒进行测试?
  • 我有一个沙盒用户(在 iTunes Connect 上创建),但如何将我的应用“指向”沙盒?

标签: titanium appcelerator appcelerator-mobile titanium-modules


【解决方案1】:

您是否检查过您是否使用沙盒进行测试? https://github.com/appcelerator-modules/ti.storekit/blob/master/ios/example/app.js#L86

您是否知道必须退出现有的 App Store 帐户才能进行测试? https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnectInAppPurchase_Guide/Chapters/TestingInAppPurchases.html

您必须使用产品 ID (15Keys)。

【讨论】:

  • evt.products 将包含所有 IAP,因此出于测试目的,您只需 console.log 整个列表即可;)
  • 福克,感谢您的帮助。我不清楚如何指向苹果沙箱,但我确实将这两行代码包含在“沙箱”和“共享秘密”中。另外,我不确定您退出我的应用商店帐户是什么意思。在应用程序中,它甚至没有要求我提供我的苹果凭据,而且我还是以不同的苹果用户身份登录的。 Rene:evt.products 的长度为零。可能是什么问题?
  • 还有一个问题:我提交给 Apple 的二进制文件是否必须包含应用内 storekit 代码?我想我可以测试我的应用商店的东西之前提交给苹果最终发布应用商店。
  • @SweatCoder mm,如果它返回为空,那么要么它没有使用沙箱,要么你没有在 iTunes Connect 中正确配置产品。是的,当然,您发送给 Apple 的版本必须具有该模块,否则它将无法工作。但是您可以通过 Ad Hoc 构建来测试它。
  • 我如何知道我是否在使用沙盒? 2 行沙箱代码与下载有关,这对我不适用。我有一个沙盒测试帐户,但我什至无法获得足够的凭据提示。
猜你喜欢
  • 2017-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多