You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Apphud iOS SDK从Apple获取产品失败,寻求解决方案

解决Apphud SDK获取产品时StoreKit无响应的问题

常见排查与修复步骤

  • 确认Apphud配置的产品ID与App Store Connect完全一致
    检查Apphud后台添加的内购产品ID,必须和App Store Connect里的产品ID(不是名称)完全匹配,大小写、特殊符号都不能错。Apphud不会自动同步产品,必须手动添加后才能通过SDK获取。

  • 验证Apphud初始化是否正确
    确保在App启动时已经用正确的API密钥完成Apphud初始化,比如在AppDelegate的application(_:didFinishLaunchingWithOptions:)或者SceneDelegate的scene(_:willConnectTo:options:)里调用:

    Apphud.start(apiKey: "YOUR_API_KEY")
    

    初始化必须在调用fetchProducts()之前完成,否则请求会无响应。

  • 检查测试环境与签名配置

    • 模拟器测试时,确保系统版本为iOS 15及以上,且登录的是绑定测试账号的Apple ID(不能用生产账号)。
    • 真机测试时,使用Ad Hoc或Development签名,且设备已添加到开发者账号的设备列表中。
  • 确认App Store Connect的内购产品状态
    内购产品必须处于**"准备提交"或"已批准"**状态,不能是"拒绝"或"草稿"状态。即使仅做测试,也需要产品信息填写完整并通过审核(无需发布到App Store)。

  • 排查网络与代理问题
    StoreKit请求可能被代理、VPN或防火墙拦截,测试时关闭相关工具,确保设备能正常访问Apple服务器。

  • 添加StoreKit原生回调排查问题
    可以直接调用StoreKit原生接口验证请求是否正常,以此区分是StoreKit层面还是Apphud SDK的问题:

    import StoreKit
    
    class ProductChecker: NSObject, SKProductsRequestDelegate {
        func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
            print("StoreKit原生返回产品:\(response.products.map {$0.productIdentifier})")
            print("无效产品ID:\(response.invalidProductIdentifiers)")
        }
        
        func request(_ request: SKRequest, didFailWithError error: Error) {
            print("StoreKit原生请求失败:\(error)")
        }
    }
    
    // 在loadProducts方法中添加调用
    let checker = ProductChecker()
    let request = SKProductsRequest(productIdentifiers: Set(["你的产品ID"]))
    request.delegate = checker
    request.start()
    

    如果原生请求也无响应,问题出在StoreKit侧;如果有响应,再检查Apphud的产品配置。

  • 更新Apphud SDK到最新版本
    旧版本SDK可能存在兼容性问题,通过CocoaPods或Swift Package Manager更新到最新版本后重试。


内容的提问来源于stack exchange,提问作者Rue Vitale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 02:32:32