type
status
date
slug
summary
tags
category
icon
password
在开发阶段测试会员购买功能,你有以下几种方法:

🎯 方法一:使用 StoreKit Configuration File(推荐)

这是最方便的本地测试方法,无需真实的 App Store Connect 配置。

1. 创建 StoreKit Configuration 文件

  1. 在 Xcode 中:FileNewFile
  1. 选择 StoreKit Configuration File
  1. 命名为 Products.storekit
  1. 保存到项目根目录

2. 配置产品信息

Products.storekit 文件中添加你的产品(根据你的代码,产品ID已定义):

3. 在 Xcode 中启用

  1. 选择你的 Scheme:ProductSchemeEdit Scheme...
  1. 选择 RunOptions
  1. StoreKit Configuration 下拉菜单中选择 Products.storekit

4. 测试购买

  • 运行应用,购买流程会在本地模拟
  • 可以在 Xcode 菜单栏 DebugStoreKitManage Transactions 查看和管理测试交易
  • 可以快速测试订阅续订、过期、退款等场景

🧪 方法二:使用 Sandbox 测试账号

这个方法更接近真实环境,需要在 App Store Connect 中配置。

1. 在 App Store Connect 中配置产品

  1. 登录 App Store Connect
  1. 创建应用(如果还没创建)
  1. 进入 功能App 内购买项目
  1. 添加三个产品,使用你代码中的产品ID:
      • SpeechNote.Membership.Monthly - 自动续期订阅
      • SpeechNote.Membership.Yearly - 自动续期订阅
      • SpeechNote.Membership.Lifetime - 非消耗型项目

2. 创建 Sandbox 测试账号

  1. 在 App Store Connect 中:用户和访问沙盒测试员
  1. 点击 + 创建新的测试账号
  1. 使用一个不存在的邮箱(如 test@yourdomain.com
  1. 设置密码,选择地区为中国

3. 在设备上测试

  1. 退出真实的 Apple ID
      • 设置App Store → 点击头像 → 退出登录
  1. 运行应用
      • 在 Xcode 中运行应用到真机或模拟器
  1. 购买时登录 Sandbox 账号
      • 点击购买按钮时,系统会提示登录
      • 使用刚创建的 Sandbox 测试账号登录
      • 注意: 横幅会显示 [环境:沙盒] 表示是测试环境

4. Sandbox 测试特点

  • 免费购买:不会真实扣款
  • 快速订阅周期
    • 1个月订阅 = 5分钟
    • 1年订阅 = 1小时
  • 自动续订测试:可以测试续订6次后自动取消

💡 方法三:临时绕过购买(仅开发测试)

如果只想测试会员功能的UI和逻辑,可以临时修改代码:

查看当前会员状态判断逻辑

根据你的代码 StoreKitManager.swift 第18-27行,会员状态判断为:

临时测试方案(仅用于开发)

你可以在 UsageLimitManager.swift 中临时修改 isProUser 属性:
或者使用编译标志:
然后在调试时设置:

📋 推荐的测试流程

阶段1:本地快速测试(StoreKit Configuration)

✅ 测试购买流程UI
✅ 测试会员功能解锁
✅ 测试错误处理

阶段2:Sandbox 真实测试

✅ 测试与 App Store Connect 的集成
✅ 测试订阅续订逻辑
✅ 测试恢复购买功能

阶段3:TestFlight 测试

✅ 在真实环境中测试(使用Sandbox账号)
✅ 邀请测试用户反馈

⚠️ 注意事项

  1. 永远不要在生产代码中硬编码会员状态为 true
  1. Sandbox 账号不能用于真实购买
  1. 测试完成后要退出 Sandbox 账号
  1. StoreKit Configuration 仅在模拟器/调试时生效
  1. 正式发布前,确保 App Store Connect 中的产品已审核通过

🎓 调试技巧

查看购买事务

重置测试状态

  • 删除应用重新安装
  • 或在代码中清除 UserDefaults
  • 或在 Xcode: DebugStoreKitClear Purchase History