StoreKit2 相当于 SKPaymentQueue.presentCodeRedemptionSheet()

Ste*_*enT 5 app-store storekit in-app-purchase ios

我在新的 iOS 应用程序中使用StoreKit2来处理应用程序内订阅购买。我想支持在应用程序中兑换优惠代码,但我不知道如何使用 StoreKit2 实现这一点。

是否有相当于原始 StoreKit 的SKPaymentQueue.presentCodeRedemptionSheet()的 StoreKit2 ?

我在文档中没有看到任何专门处理优惠代码的内容。虽然有这样的:

static func promotionalOffer(offerID: String, keyID: String, nonce: UUID, signature: Data, timestamp: Int) -> Product.PurchaseOption
Run Code Online (Sandbox Code Playgroud)

我的理解是,促销优惠与优惠代码是分开的。

感谢任何人提供的有关如何允许使用 StoreKit2 在应用程序内兑换优惠代码的任何指示。我假设我不应该包含原始 StoreKit 以及 StoreKit2 并调用旧的 API,对吗?

Ste*_*enT 6

更新:iOS 16 现在提供了一种用于此目的的方法(感谢 @Mamouneyya 发现了这一点):

presentOfferCodeRedeemSheet(in:)

原答案:

我在今年早些时候的 Apple 开发者活动(优化订阅以获得成功:2022 年 3 月 22 日收购)中提出了这个问题,并被告知:

  • 没有 StoreKit2 等效项(至少截至 2022 年 3 月还没有)
  • 我们应该只使用SKPaymentQueue.presentCodeRedemptionSheet()原来的 StoreKit

这个答案似乎意味着在同一个应用程序中链接 StoreKit 和 StoreKit2 是可以的。我自己还没有尝试过。