问题标签 [mkstorekit]

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 回答
197 浏览

ios - 如何在评估 iOS 自动更新 iAP 时使用 ASN 本地收据中的字段?

我们的 iOS 应用程序支持具有不同免费试用期的年度订阅。我们的目标是评估离线用户设备上本地可用的收据。

**我们计划这样做:**

  1. 检查 cancel_date 是否存在 - 非活动订阅
  2. 如果 cancel_date 不存在,请检查 purchase_date 是否存在:

    如果是,请检查 expires_date 是否存在并且处于活跃期 - 活跃订阅

    如果没有,请检查 expires_date 是否存在并且处于活跃期 - 可能是试用期

我们想不通的是,如果用户在试用期关闭订阅停止付款,应用程序如何知道此类事件?

expires_date 是表示“试用期 + 1 年”还是仅表示“1 年”?

original_purchase_date 或 purchase_date 是否表示“试用开始”或“用户付款日期”?

注意:我们还计划使用 SKReceiptRefreshRequest 定期刷新本地收据。

0 投票
1 回答
99 浏览

ios - MKStoreKit 是否仍在维护并与 iOS 12 完全兼容?

我一直在旧 iOS 应用程序中使用早期版本的MKStoreKit来管理应用内购买。它工作得很好。

现在我正在开发一个应该支持自动更新订阅的新应用程序。我想再次使用 MKStoreKit。然而,MKStoreKit 的当前版本 6.1 是在 3 年前发布的。我想知道它是否仍然完全兼容StoreKitiOS 12。

当然,我可以自己运行几个测试,但是错误往往隐藏在测试中并显示在生产中。那么,目前有没有人在生产中使用 MKStoreKit 6.1 并告诉我是否仍然是一个好的解决方案或有任何缺点/问题?

0 投票
0 回答
37 浏览

ios - 'NSInvalidArgumentException',原因:'-[_UIBackgroundTaskInfo setStoreObserver:]:无法识别的选择器发送到实例 0x282b20780'

在更新一些旧代码的过程中,当代码启动时,它会在启动时立即崩溃。我正在使用 XCode 10,以前这在 XCode 7/8 中可以正常工作

这条线在AppController.mm

[[MKStoreManager sharedManager] requestProductData];

那条线带你到

错误本身是

objc[680]: MKStoreManager object 0x281ecd020 overreleased while already deallocating; break on objc_overrelease_during_dealloc_error to debug 2019-09-19 12:15:18.342037+0100 PoolParty[680:66967] -[_UIBackgroundTaskInfo setStoreObserver:]: unrecognized selector sent to instance 0x281ecd020 2019-09-19 12:15:18.342502+0100 PoolParty[680:66967] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_UIBackgroundTaskInfo setStoreObserver:]: unrecognized selector sent to instance 0x281ecd020'

努力弄清楚这一点,如果有人可以提供帮助,我将不胜感激!

0 投票
0 回答
38 浏览

swift - App Store Receipts 字段中缺少“product_id”

我终于开始将 Muguntu Kumar 的 MKStoreKit 类翻译成 Swift,以摆脱 Objective-c 经常出现的问题,并最终分享它,以期让每个人都受益。尽管如此,我现在仍然坚持:

在函数 startValidatingReceiptsAndUpdateLocalStore 中,鉴于https://developer.apple.com/documentation/appstorereceipts中的字段甚至不包括访问下面行中的购买记录所需的字段 product_id。首先,鉴于该字段永远不会到达,我不知道原始的 Objective_C 库如何工作,其次我想知道我可以用什么替换该值来索引 self.purchaseRecord。

谢谢,法布里齐奥

0 投票
1 回答
24 浏览

objective-c - MKStoreKit 自动续订订阅到期日期始终返回当前日期

使用 MKStoreKit 进行自动续订订阅。在沙盒中成功购买。问题是购买日期和到期日期始终记录为相同,或者比当前日期晚 1 小时。随着沙盒时间的加快,我预计[[MKStoreKit sharedKit] expiryDateForProduct:@"211112"];[NSDate date]在购买前 30 分钟左右,因为它是六个月的购买。我得到交易的当前日期正好晚了 1 小时。

购买记录:

重新加载时,日志打印该订阅到期日期和当前日期完全相同

重新加载日志:

从 MKStoreKit 中的代码来看,购买日期可能会返回 NULL 并返回当前日期

[[MKStoreKit sharedKit] valueForKey:@"purchaseRecord"]<null>购买退货

0 投票
0 回答
17 浏览

swift - 应用内购买在生产模式下返回未知错误

我们在生产中有一个基于订阅的应用程序,sandbox我们在应用程序内购买代码中禁用了模式。

尽管我们处理了代码中的所有错误,但我们的一些用户得到了这个错误:

尽管许多用户可以付款,但其中一些用户会收到这些错误。可能是什么问题?我们使用 MKStoreKit 作为第三方工具为我们的用户提供购买机制。