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

Capacitor打包SvelteKit iOS应用:cordova-plugin-purchase初始化失败排查

Cordova-Purchase 在 Capacitor + SvelteKit iOS 环境下无 Ready 状态触发的解决方案

先排查这些遗漏的配置

  • 开发者账号与 App Store Connect 配置

    • 确认你的 Apple 开发者账号已完成协议、税务、银行信息的签署——哪怕产品状态是Ready to Submit,如果这些协议没搞定,沙盒环境根本拉取不到产品数据。
    • 检查 Capacitor 配置文件(capacitor.config.ts/.js)里的appId和 App Store Connect 中的 Bundle ID 完全一致,大小写、标点符号都不能错。
    • 打开 Xcode 项目(npx cap open ios),在Signing & Capabilities中确认已添加In-App Purchase能力,并且选择了正确的开发者团队。
  • 插件初始化时机错误
    SvelteKit 的 SSR/SSG 特性导致原生插件加载时机和纯前端项目不同,必须等 Capacitor 完全初始化后再启动购买插件:

    import { Capacitor } from '@capacitor/core';
    import { browser } from '$app/environment';
    
    if (browser && Capacitor.isNativePlatform()) {
      document.addEventListener('capacitorAppReady', () => {
        // 初始化插件,自动续期订阅需要填appSharedSecret,普通内购可留空但建议加上
        window.store.initialize({
          storekit: { appSharedSecret: '你的App共享密钥' }
        });
    
        // 绑定监听器
        window.store.ready(() => {
          console.log('Store 就绪,加载产品');
          window.store.load(['你的产品ID1', '你的产品ID2']);
        });
    
        window.store.error(err => {
          console.error('Store 错误:', err);
        });
      });
    }
    

    别直接在组件onMount里初始化——此时原生插件可能还没完成加载。

  • 产品ID完全匹配
    代码中store.load()传入的产品ID必须和 App Store Connect 里的完全一致,包括大小写、前缀(比如com.yourapp.pro不能写成com.yourapp.Pro)。

调试步骤

  • 用Xcode看原生日志

    1. 用npx cap open ios打开Xcode,连接真机(模拟器内购不稳定,优先用真机)。
    2. 运行项目后查看Xcode控制台,插件会输出原生层面的详细日志——比如是否连接沙盒失败、产品拉取报错等,这些是前端日志看不到的。
  • 沙盒账号验证

    1. 在iOS设备上退出当前App Store账号(设置→App Store→退出),触发内购时会弹出沙盒账号登录框,用你在App Store Connect创建的沙盒测试账号登录。
    2. 确认产品状态是Ready to Submit或Approved,Waiting for Review的产品无法在沙盒中访问。
  • 兼容性检查
    确保cordova-plugin-purchase版本和当前Capacitor版本兼容,尝试更新插件:

    npm update cordova-plugin-purchase
    npx cap sync ios
    
  • 隔离SvelteKit服务端环境
    购买逻辑必须只在客户端执行,用$app/environment的browser变量确保代码不会在服务端运行,避免初始化失败。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:45:32