Post

Replies

Boosts

Views

Activity

TestFlight 沙盒中 StoreKit 2 的 `Product.products(for:)` 对两个非消耗型内购持续返回空数组
大家好,我正在排查一个 TestFlight 沙盒环境中的 StoreKit 2 商品加载问题,希望获得建议。 一、现象 iOS App 通过 TestFlight 安装(Build 4)后,使用 Product.products(for:) 请求两个非消耗型内购项目。调用不会抛出错误,但始终返回空数组,因此购买页没有任何可购买商品。 products = try await Product.products(for: [ "com.shidan.qieting.plus.trial.7day", "com.shidan.qieting.plus.lifetime" ]).sorted { $0.id < $1.id } 两个 Product ID 分别为: Product ID 类型 价格 App Store Connect 状态 com.shidan.qieting.plus.trial.7day 非消耗型 Tier 0 / US$0.00 可供审核 com.shidan.qieting.plus.lifetime 非消耗型 US$5.99 可供审核 二、日志 在 TestFlight App 冷启动后,诊断日志记录: 2026-09-03T08:12:08Z [settings] plus products loaded: trialAvailable=false, lifetimeAvailable=false 打开购买页时再次调用,结果仍然为空。没有捕获到 StoreKit 异常,也没有购买流程报错。 三、系统级沙盒验证结果 为排除 App UI 和 StoreKit 商品加载代码的影响,我们还使用同一开发团队创建的 Sandbox Apple Account,在 iOS 的“设置 > 开发者 > Sandbox Apple Account > 管理 > Test Transactions”中直接测试: Bundle ID:com.shidan.qieting Product ID:com.shidan.qieting.plus.lifetime 系统提示:“提供的产品 ID 或套装 ID 无效”。该工具不经过 App 内的购买页或 Product.products(for:) 结果,仍无法识别这组 Bundle ID 与 Product ID。 四、已完成核验 代码中的 Product ID 与 App Store Connect 中的 Product ID 完全一致。 Release Bundle ID 与 App Store Connect App Record 一致,均为 com.shidan.qieting。 App ID 为显式 ID,不是 wildcard App ID。 Certificates, Identifiers & Profiles 中已启用 In-App Purchase capability;Xcode Target 也已启用,Xcode Cloud 使用自动签名。 TestFlight 使用 Archive 构建;共享 Scheme 的 ArchiveAction 没有 StoreKit Configuration 文件。本地 .storekit 文件只用于 Xcode Run/Test,本身不影响 Archive/TestFlight。 两个项目均已设置价格、175 个 App Store 地区可售,以及简体中文、繁体中文、英语本地化。 最后一次修改 IAP 元数据已经超过 48 小时。 Paid Apps Agreement、税务信息和银行信息均为有效/正在使用中。 尚未提交 App 或 IAP 审核;理解为 TestFlight 沙盒测试不应以提交审核为前提。 欧盟《数字服务法》(DSA)交易商合规信息仍在审核中;但该要求针对欧盟 App Store 产品页的交易商信息。Apple 官方说明中,单独通过 TestFlight 分发不属于在欧盟 App Store 以交易商身份分发,因此这不应影响 TestFlight 沙盒或 Test Transactions。 五、想请教 在上述条件已确认、Product.products(for:) 不报错却返回 [] 的情况下,是否还有容易遗漏的 App Store Connect、沙盒、签名或 TestFlight 配置? 是否有人遇到过“所有 Product ID 均正确、商品完整且全球可售,但 TestFlight 沙盒始终返回空数组”的情况?如果这是 Apple 沙盒端的已知延迟或异常,有什么进一步的排查或反馈渠道? 我可以按需要补充已打码的 App Store Connect 配置截图和完整诊断日志。谢谢。
3
0
291
20h
TestFlight 沙盒中 StoreKit 2 的 `Product.products(for:)` 对两个非消耗型内购持续返回空数组
大家好,我正在排查一个 TestFlight 沙盒环境中的 StoreKit 2 商品加载问题,希望获得建议。 一、现象 iOS App 通过 TestFlight 安装(Build 4)后,使用 Product.products(for:) 请求两个非消耗型内购项目。调用不会抛出错误,但始终返回空数组,因此购买页没有任何可购买商品。 products = try await Product.products(for: [ "com.shidan.qieting.plus.trial.7day", "com.shidan.qieting.plus.lifetime" ]).sorted { $0.id < $1.id } 两个 Product ID 分别为: Product ID 类型 价格 App Store Connect 状态 com.shidan.qieting.plus.trial.7day 非消耗型 Tier 0 / US$0.00 可供审核 com.shidan.qieting.plus.lifetime 非消耗型 US$5.99 可供审核 二、日志 在 TestFlight App 冷启动后,诊断日志记录: 2026-09-03T08:12:08Z [settings] plus products loaded: trialAvailable=false, lifetimeAvailable=false 打开购买页时再次调用,结果仍然为空。没有捕获到 StoreKit 异常,也没有购买流程报错。 三、系统级沙盒验证结果 为排除 App UI 和 StoreKit 商品加载代码的影响,我们还使用同一开发团队创建的 Sandbox Apple Account,在 iOS 的“设置 > 开发者 > Sandbox Apple Account > 管理 > Test Transactions”中直接测试: Bundle ID:com.shidan.qieting Product ID:com.shidan.qieting.plus.lifetime 系统提示:“提供的产品 ID 或套装 ID 无效”。该工具不经过 App 内的购买页或 Product.products(for:) 结果,仍无法识别这组 Bundle ID 与 Product ID。 四、已完成核验 代码中的 Product ID 与 App Store Connect 中的 Product ID 完全一致。 Release Bundle ID 与 App Store Connect App Record 一致,均为 com.shidan.qieting。 App ID 为显式 ID,不是 wildcard App ID。 Certificates, Identifiers & Profiles 中已启用 In-App Purchase capability;Xcode Target 也已启用,Xcode Cloud 使用自动签名。 TestFlight 使用 Archive 构建;共享 Scheme 的 ArchiveAction 没有 StoreKit Configuration 文件。本地 .storekit 文件只用于 Xcode Run/Test,本身不影响 Archive/TestFlight。 两个项目均已设置价格、175 个 App Store 地区可售,以及简体中文、繁体中文、英语本地化。 最后一次修改 IAP 元数据已经超过 48 小时。 Paid Apps Agreement、税务信息和银行信息均为有效/正在使用中。 尚未提交 App 或 IAP 审核;理解为 TestFlight 沙盒测试不应以提交审核为前提。 欧盟《数字服务法》(DSA)交易商合规信息仍在审核中;但该要求针对欧盟 App Store 产品页的交易商信息。Apple 官方说明中,单独通过 TestFlight 分发不属于在欧盟 App Store 以交易商身份分发,因此这不应影响 TestFlight 沙盒或 Test Transactions。 五、想请教 在上述条件已确认、Product.products(for:) 不报错却返回 [] 的情况下,是否还有容易遗漏的 App Store Connect、沙盒、签名或 TestFlight 配置? 是否有人遇到过“所有 Product ID 均正确、商品完整且全球可售,但 TestFlight 沙盒始终返回空数组”的情况?如果这是 Apple 沙盒端的已知延迟或异常,有什么进一步的排查或反馈渠道? 我可以按需要补充已打码的 App Store Connect 配置截图和完整诊断日志。谢谢。
Replies
3
Boosts
0
Views
291
Activity
20h