了解最新的 storekit api 增强功能,它们有助于你为顾客提供出色的 app 内购买项目体验。我们将介绍 apptransaction、transaction 和 renewalinfo 中新增的字段,以及针对 app 内购买项目优惠代码所做的更新。我们还将介绍如何使用 app store server library 创建已签名的 app 内购买项目请求,以及如何使用 swiftui 来更新陈列订阅项。
视频地址
此文章由AI生成,可能存在错误,如有问题,请联系djs66256@163.com
StoreKit 与应用内购买新特性解析苹果在最新的 WWDC 上公布了多项 StoreKit 与应用内购买的更新,这些改进将帮助开发者更好地管理应用内购买体验。本文将详细介绍这些新功能及其实现方式。
核心框架更新StoreKit 框架中的三个关键类型获得了重要升级,为开发者提供了更丰富的购买信息和管理能力。
AppTransaction 增强AppTransaction 类型现在包含两个新字段:
appTransactionID: 这是一个全局唯一标识符,从 iOS 18.4 开始可用(支持回溯至 iOS 15),每个下载应用的 Apple ID 账户都会获得独立 ID
originalPlatform: 表示用户原始购买设备的平台类型(AppStore.Platform),包括 iOS、macOS、tvOS 和 visionOS
这些字段特别适用于商业模式变更的场景,例如从付费应用转为含内购的免费应用时识别老用户权益。
Transaction 改进Transaction 类型代表了成功的应用内购买,iOS 18.4 带来以下变化:
废弃了 Transaction.currentEntitlement for productID API,改用新的 Transaction.currentEntitlements API
新增三个字段:appTransactionID、Offer Period(关联订阅周期)和 advancedCommerceInfo(仅适用于高级商务 API 用户)
RenewalInfo 扩展RenewalInfo 类型专用于管理自动续订订阅,新增内容包括:
通过 Transaction ID 查询订阅状态的新 API
四个新字段:appTransactionID、Offer Period、advancedCommerceInfo 和 appAccountToken(用于关联开发者服务中的用户账户)
优惠码功能扩展优惠码支持范围得到了显著扩大:
现已支持消耗型商品、非消耗型商品和非续订订阅的兑换(回溯至 iOS 16.3)
自动续订订阅的优惠码支持可回溯至 iOS 14.2
新增 Transaction.Offer.PaymentMode 类型来区分不同优惠的支付模式
请求签名新方法从 iOS 18.2 开始,StoreKit 引入了需要 UI 上下文的购买方法。不同平台需要提供不同的上下文对象:
iOS/macCatalyst/tvOS/visionOS:需要提供 UIViewController
macOS:需要提供 NSWindow
watchOS:不需要提供上下文
在 SwiftUI 视图中,可以通过 purchase 环境值获取 PurchaseAction 实例
SwiftUI 订阅展示新推出的 SubscriptionOfferView 是 StoreKit 视图家族的新成员,专门用于展示自动续订订阅选项。开发者可以通过五种关系类型配置展示逻辑:
1234567891011121314// 升级选项展示SubscriptionOfferView(relation: .upgrade)// 降级选项展示 SubscriptionOfferView(relation: .downgrade)// 同级最佳选项展示SubscriptionOfferView(relation: .crossgrade)// 当前方案展示(需配合优惠码)SubscriptionOfferView(relation: .current) // 展示组内全部方案SubscriptionOfferView(relation: .all)
总结与最佳实践这些 StoreKit 的增强功能为开发者提供了更强大的工具来构建优质的应用内购买体验。苹果建议开发者:
全面采用 StoreKit 2 API
利用 StoreKit 视图构建应用商店界面
集成 App Store Server Library 简化请求签名流程
通过合理运用这些新特性,开发者可以更高效地管理应用内购买流程,为用户提供更流畅的购买体验。
相关视频和文档请参考以下资源。
相关视频App Store Connect 的新功能探索适用于 App 内购买项目的 App Store Server API认识 StoreKit 与 SwiftUI认识 StoreKit 2
文档Advanced Commerce APIHuman Interface Guidelines: In-app purchaseSet up offer codesSimplifying your implementation by using the App Store Server LibraryStoreKit