SwiftUI 订阅实战
第1章 App Store Connect配置
1.1_创建App记录 1.2_配置App内购买项目:消耗品 1.3_配置App内购买项目:非消耗品 1.4_配置App内购买项目:自动续期订阅 1.5_配置App内购买项目:非续期订阅 1.6_设置订阅群组 1.7_配置沙盒测试员账户
第2章 项目环境设置
2.1_在Xcode中启用App内购买功能 2.2_创建StoreKit配置文件(.storekit) 2.3_在配置文件中添加订阅产品 2.4_配置订阅价格和期限 2.5_为不同地区设置价格 2.6_将StoreKit配置文件关联到运行方案
第3章 产品信息获取
3.1_异步请求产品信息 3.2_处理产品请求错误 3.3_解析Product对象数据 3.4_显示本地化的产品标题和描述 3.5_格式化并显示价格
第4章 处理购买流程
4.1_发起购买请求:purchase()方法 4.2_处理购买结果:PurchaseResult 4.3_处理用户取消购买 4.4_处理待处理的交易(Ask to Buy) 4.5_处理购买失败的情况
第5章 验证与状态管理
5.1_理解Transaction对象 5.2_遍历Transaction.updates以监听交易 5.3_验证交易的JWS签名 5.4_检查用户的当前订阅权利 5.5_解锁高级功能或内容 5.6_完成交易:Transaction.finish() 5.7_处理中断的交易
第6章 订阅状态与续订
6.1_获取用户所有已购买的产品ID 6.2_检查订阅是否活跃:currentEntitlements 6.3_确定订阅到期日期 6.4_处理订阅续订、降级和升级 6.5_处理订阅过期和宽限期 6.6_处理退款和撤销
第7章 订阅页面设计
7.1_使用VStack和HStack布局页面 7.2_动态展示从StoreKit获取的产品列表 7.3_设计吸引人的购买按钮 7.4_显示订阅条款和隐私政策链接 7.5_添加“恢复购买”按钮
第8章 SwiftUI视图与StoreKit集成
8.1_创建StoreManager作为ObservableObject 8.2_在视图中使用@StateObject管理StoreManager 8.3_根据订阅状态动态显示-隐藏UI元素 8.4_在按钮的action中调用购买函数 8.5_显示加载指示器和错误提示
第9章 恢复购买功能
9.1_实现“恢复购买”按钮的UI 9.2_调用AppStore.sync()函数 9.3_处理恢复过程中的状态更新 9.4_向用户反馈恢复成功或失败
第10章 服务器端验证
10.1_服务器验证的必要性 10.2_App Store服务器通知简介 10.3_设置服务器接收通知的URL 10.4_在服务器上解析和验证JWS负载 10.5_安全地更新用户数据库中的订阅状态
第11章 测试与部署
11.1_使用StoreKit配置文件进行本地测试 11.2_使用沙盒环境进行真机测试 11.3_TestFlight测试的最佳实践 11.4_处理订阅价格变更 11.5_提交应用以供审核:提供测试信息
第12章 促销与优惠代码
12.1_配置促销优惠(推广和引导) 12.2_实现StoreKit的 promotionalOffer(for-signature-) 12.3_生成并验证优惠签名 12.4_配置和兑换优惠代码 12.5_在UI中展示促销价格