用途:指导在 iOS 应用中实现健壮、可测试的应用内购买(IAP)。基于 StoreKit 2,面向 iOS 15+(iOS 18.4+ 支持最新特性),Xcode 13+(建议 16+)。适用于新增或改造 IAP、添加消耗型(金币、提示、加速)与非消耗型(高级功能、关卡包)商品、自动续期订阅(月付/年付)、排查购买失败与恢复问题、配置 StoreKit 测试、订阅状态跟踪、促销/推介优惠、服务端收据校验与家人共享。不适用于 StoreKit 1 旧接口、App Store Connect 商品配置和定价策略。
核心工作流:测试优先。顺序为 StoreKit 配置 → 本地测试 → 生产代码 → 单元测试 → 沙盒测试。先在 Xcode 新建 .storekit 配置文件并添加商品(如 com.yourapp.coins_100、com.yourapp.premium、com.yourapp.pro_monthly),在 Scheme 的 Run → Options 中指定该配置,即可在模拟器即时验证商品 ID、成功/失败购买、恢复、续期与升降级,无需依赖 App Store Connect。若先写了购买代码再补配置,资料给出三种选项并强烈建议删除重来、遵循测试优先。
主要能力与要求:集中式 StoreManager 作为唯一来源,@MainActor + ObservableObject 发布 products 与已购 ID;启动时加载商品,用 Transaction.updates 持续监听交易;所有交易必须用 VerificationResult 校验签名后才授予权益,并在授予后调用 transaction.finish();购买用 purchase(confirmIn:options:)(iOS 18.2+,SwiftUI 可用 Environment(.purchase)),需处理 success、userCancelled、pending 等 PurchaseResult 分支,有后端时设置 appAccountToken;通过 Transaction.currentEntitlements 判断当前权益并排除已退款(revocationDate 非空);订阅用 Product.SubscriptionInfo.Status 跟踪状态,处理 .subscribed、.expired 等状态与宽限期、计费重试;实现恢复购买、家人共享识别、跨设备同步与错误处理。清单涵盖测试基础、架构、购买流程、订阅管理、恢复与同步、错误处理、测试与验证七个阶段,并要求单元测试、StoreKit 集成测试、沙盒测试与 TestFlight 验证。限制:具体价格、商品、服务端实现、App Store Connect 配置等未提供。