问题标签 [rmstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4054 浏览

ios - 应用内购买不起作用但获得产品响应

我知道有很多这样的问题,但我找不到有帮助的。

我已经多次实施 IAP,但去年没有。事情似乎发生了变化。我在 iTunes Connect 中创建了我的 IAP 项目,它们的状态现在是“等待审核”。我正在使用一个名为 RMStore 的库来简化 IAP。

当我使用产品 ID 拨打购买电话时,我收到“产品 ID 无效错误”。我的 IAP 商品是否必须通过审核才能进行测试?

编辑:

我又做了一些测试。即使我在尝试购买时得到无效的产品 ID,我也可以使用相同的产品 ID 获得产品的详细信息。

这是我收到错误时调用的代码。

0 投票
0 回答
1409 浏览

ios - 使用 RMStore 库获取 originalAppVersion

我有一个仅限 iOS 7 的产品,我想阅读 App Store 收据并检查原始应用购买日期。我一直在使用 RMStore 库 ( https://github.com/robotmedia/RMStore ) 来读取应用收据并返回该信息,如下所示:

注意:我目前没有使用 RMStore 库的任何其他部分

在大多数情况下,这很有效。问题是对于我的一些用户,appReceipt.originalAppVersion 是一个空字符串。其他字段,例如当前的 appVersion,都很好。执行 SKReceiptRefreshRequest 后,仍然没有运气。事实上,SKReceiptRefreshRequest 有时会通过将 appReceipt.originalAppVersion 从有效字符串更改为空字符串来使情况变得更糟。

对于遇到此问题的客户,我已指示他们删除该应用程序并从应用程序商店重新下载。在大多数情况下,这确实可以解决问题,但并非总是如此。显然,我想在不要求我的用户重新安装的情况下防止该问题。

整个应用商店收据功能对我来说非常模糊,我对所有正在进行的加密和解密一无所知,这就是为什么我希望依靠 RMStore 为我完成这项工作。我想要一个不错的小型本地图书馆来完成这项工作,而无需使用服务器,而 RMStore 符合要求。

我不知道这是 RMStore 库中的错误,还是应用商店收据系统的一些固有怪癖,其中可能存在解决方法。使用 RMStore 的其他人是否遇到过空 appReceipt.originalAppVersion 的问题?

====== 更新:经过进一步调查,这似乎是 StoreKit 工作方式的一个怪癖。我用另一个库 DHAppleReceiptParser 复制了这个问题。当问题情况出现时,苹果服务器似乎没有返回原始应用程序版本号,因此库不接受它。但是,另一个未记录的字段又回来了, original_purchase_date (仅记录在应用程序购买收据中,而不是应用程序收据中)。我能够直接查询 iTunes 服务器 (buy.itunes.apple.com/verifyReceipt) 进行验证,这对调试很有用,但不推荐用于发货产品。这些是结果:

问题情况。这发生在我的大约 1% 的客户身上,或者在执行 SKReceiptRefreshRequest 之后经常发生。没有“original_application_version”字段!

删除应用程序并从 iCloud 购买进行全新安装后。“original_application_version”现在在那里!

“original_purchase_date”似乎更可靠地检查产品的购买时间,但 Apple 文档并未提及基本应用收据(仅限 IAP)。

0 投票
2 回答
2150 浏览

ios - 带有 RMStore 的 iOS SDK Auto Renewable 订阅 - 如何验证有效订阅?

我正在使用RMStore库来处理我的 iOS 应用程序中的自动更新订阅。它适用于购买,但我找不到任何文档如何使用 RMStore 检查当前订阅是否仍然有效?

检查购买产品的代码在这里不起作用:

此代码始终显示订阅已购买(因为它是)但不检查此订阅是否已通过日期。

我在RMAppReceipe.h文件中看到方法“ isActiveAutoRenewableSubscriptionForDate ” ,但我没有找到任何文档如何使用 RMStore 在我的应用程序中检索订阅收据以及如何使用isActiveAutoRenewableSubscriptionForDate方法检查此收据。请帮忙。

摘要:我只需要检查订阅@“com.fanfun.apptestsubscription1”在今天(当前日期)是否仍然有效。请提供此简单检查的示例代码。

0 投票
1 回答
746 浏览

ios - RMStore 使用什么加密以及如何将使用它的 App 正确上传到 App Store?

当使用 iTunes Connect 上传应用程序时,Apple 会要求您指定您的应用程序是否使用任何加密功能。

RMStore在什么情况下使用加密,在将 App 上传到 App Store 时应该如何回答这些问题。

截屏

注意:我正在使用 cocoapods 来获取RMStore

截屏加密

0 投票
2 回答
866 浏览

ios - Apple 收据设备哈希验证

我正在尝试使用来自名为 RMStore 的流行收据验证库中的代码来验证收据是否适用于此特定设备:

但是这两个哈希值不相等。代码有问题吗?

编辑

在我重新获取收据一次后,哈希开始匹配。这是我见过的最离奇的行为。有谁知道为什么会发生这种情况?

0 投票
1 回答
142 浏览

objective-c - 将收据传递给 iCloud

我正在使用 RMStore 的应用收据来验证非续订订阅。当我尝试将此收据发送到 iCloud 时,我收到一个错误:* -[NSUbiquitousKeyValueStore setObject:forKey:]: Attempt to insert non-property value '' of class 'RMAppReceipt'。

这是代码:

有任何想法吗?

0 投票
1 回答
138 浏览

ios - 在 iOS 中获取最初购买的应用版本

我已经阅读了一些关于此的主题,但没有找到令人满意的解决方案。

我想在 iOS7 前后收到原始应用程序版本(从用户下载应用程序的时间开始)。在 iOS7 中,可以解码捆绑收据。但是 iOS6 及之前的版本呢?

此时我正在使用RMStore,但我无法找到(沙盒?)收据。我该怎么做呢?

0 投票
1 回答
2175 浏览

ios - RMStore离线收据验证

关于离线收据验证的一个问题RMStorehttps://github.com/robotmedia/RMStore

在应用启动时,我检查应用是否有有效的应用内购买(专业版)(我的应用仅限 iOS7)

我这样做:

我在 App Store 中还有 1.0 版……但现在我想尽快更新……这在 App Store 更新后仍然有效,对吧?该应用程序仍然会有收据,并且验证应该仍然通过,对吧?

我问是因为测试应用内购买并不容易(尤其是更新和东西),如果出现问题,用户会很生气....

0 投票
1 回答
1379 浏览

ios - RMStore 恢复应用内购买

对应用内购买“恢复”的几个方面感到困惑。快速总结一下我的情况:现在商店里有一个付费应用,支持 ios6 和 ios7。想要转向免费增值模式,通过应用内购买进行“专业升级”。所以需要两个收据功能——检查原始安装版本,恢复应用内购买。找到了看起来很有前途的 RMStore,但仍有几个问题:

  1. 我在网上看到很多示例(非 RMStore 示例)说调用 restoreCompletedTransactions 来恢复应用内购买,但在 RMStore 中有 RMAppReceipt 方法 containsInAppPurchaseOfProductIdentifier。如果我使用的是 RMStore,我是否需要调用 restoreCompletedTransactions,或者我可以只使用上面的 RMAppReceipt 方法来验证之前的应用内购买吗?

  2. 我可以在 ios6 中使用上述 RMStore 方法吗?还是只有ios7?我在网上看到信息表明“统一收据”仅在 ios7 或类似版本中可用。

  3. 非 RMStore 特定问题:是否需要收据验证,还是仅推荐?即,如果我跳过验证收据,上述工作会起作用,还是应用商店会拒绝没有验证码?

0 投票
2 回答
1165 浏览

ios - 使用 RMStore 获取应用程序原始购买日期的正确方法是什么?

我正在发布我的应用程序的更新版本,并且我正在从付费过渡到免费增值。为了给现有用户提供无广告体验,我希望跟踪他们最初购买该应用程序的时间。

我正在调查 RMStore,但我不清楚如何测试从收据中读取原始购买日期。我想出了一些我认为应该可以工作的简单代码,但是我没有一个好的方法来测试它。

我有两个问题:

  1. 我没有有效收据。领取流程是怎样的?我需要一个已经存在的应用程序包 ID 吗?某处有测试收据吗?

  2. 如果我想将逻辑基于日期而不是版本号,我可以这样做吗?上没有originalPurchaseDate财产RMAppReciept。(我确实在 GitHub 上提交了一个问题。)