ionic-appflow-migration

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Ionic Appflow Migration

Ionic Appflow 迁移

Migrate an existing Ionic or Capacitor project away from Ionic Appflow.
将现有Ionic或Capacitor项目从Ionic Appflow迁出。

When to Use This Skill

何时使用此技能

  • User is moving off Ionic Appflow
  • The project uses Appflow Live Updates, cloud builds, or store deployment
  • The repository still references
    ionic appflow
    ,
    @capacitor/live-updates
    , or
    cordova-plugin-ionic
  • 用户要停用Ionic Appflow
  • 项目使用了Appflow Live Updates、云构建或应用商店部署功能
  • 代码库中仍引用了
    ionic appflow
    @capacitor/live-updates
    cordova-plugin-ionic

Live Project Snapshot

项目快照检测

Detected Appflow-related packages and scripts: !
node -e "const fs=require('fs');if(!fs.existsSync('package.json'))process.exit(0);const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));const out=[];for(const section of ['dependencies','devDependencies']){for(const [name,version] of Object.entries(pkg[section]||{})){if(name==='@capacitor/live-updates'||name==='cordova-plugin-ionic'||name.includes('appflow'))out.push(section+'.'+name+'='+version)}}for(const [name,cmd] of Object.entries(pkg.scripts||{})){if(/appflow|ionic cloud|ionic package|live-updates/i.test(cmd))out.push('scripts.'+name+'='+cmd)}console.log(out.join('\n'))"
Possible Appflow config and workflow paths: !
find . -maxdepth 4 \( -name '.io-config.json' -o -name 'ionic.config.json' -o -name 'capacitor.config.json' -o -name 'capacitor.config.ts' -o -name 'capacitor.config.js' -o -path './.github/workflows' \)
检测到的Appflow相关包和脚本: !
node -e "const fs=require('fs');if(!fs.existsSync('package.json'))process.exit(0);const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));const out=[];for(const section of ['dependencies','devDependencies']){for(const [name,version] of Object.entries(pkg[section]||{})){if(name==='@capacitor/live-updates'||name==='cordova-plugin-ionic'||name.includes('appflow'))out.push(section+'.'+name+'='+version)}}for(const [name,cmd] of Object.entries(pkg.scripts||{})){if(/appflow|ionic cloud|ionic package|live-updates/i.test(cmd))out.push('scripts.'+name+'='+cmd)}console.log(out.join('\n'))"
可能的Appflow配置和工作流路径: !
find . -maxdepth 4 \( -name '.io-config.json' -o -name 'ionic.config.json' -o -name 'capacitor.config.json' -o -name 'capacitor.config.ts' -o -name 'capacitor.config.js' -o -path './.github/workflows' \)

Migration Strategy

迁移策略

Split the Appflow migration by feature instead of treating it as a single package swap.
  • Live Updates ->
    capgo-live-updates
  • Native cloud builds ->
    capacitor-ci-cd
  • Store publishing ->
    capacitor-app-store
Use this skill to detect what Appflow is doing today, then hand off each feature area to the right skill.
不要将Appflow迁移视为单一的包替换操作,而是按功能拆分迁移:
  • Live Updates ->
    capgo-live-updates
  • 原生云构建 ->
    capacitor-ci-cd
  • 应用商店发布 ->
    capacitor-app-store
使用此技能检测当前Appflow的使用情况,然后将每个功能领域的迁移交给对应的技能处理。

Procedures

操作步骤

Step 1: Detect Appflow Usage

步骤1:检测Appflow使用情况

Start from the injected snapshot above, then search more broadly if the migration surface is still unclear.
Search the repository for:
  • ionic appflow
  • @capacitor/live-updates
  • cordova-plugin-ionic
  • dashboard.ionicframework.com
  • appflow.ionic.io
Record whether the project currently uses:
  • live updates
  • cloud/native builds
  • app store deployment automation
从上方注入的快照开始排查,如果迁移范围仍不明确,再扩大搜索范围。
在代码库中搜索以下内容:
  • ionic appflow
  • @capacitor/live-updates
  • cordova-plugin-ionic
  • dashboard.ionicframework.com
  • appflow.ionic.io
记录项目当前是否使用了:
  • 热更新
  • 云/原生构建
  • 应用商店自动化部署

Step 2: Migrate Live Updates

步骤2:迁移Live Updates功能

If Appflow live updates are in use:
  1. Remove
    @capacitor/live-updates
    or
    cordova-plugin-ionic
    .
  2. Install and configure Capgo using the
    capgo-live-updates
    skill.
  3. Map Appflow channels and rollout behavior onto Capgo channels.
  4. Verify that
    notifyAppReady()
    or the equivalent Capgo startup flow is wired correctly.
Do not delete Appflow configuration until the Capgo update path is validated.
如果项目使用了Appflow Live Updates:
  1. 移除
    @capacitor/live-updates
    cordova-plugin-ionic
  2. 使用
    capgo-live-updates
    技能安装并配置Capgo。
  3. 将Appflow的渠道和灰度发布规则映射到Capgo渠道。
  4. 验证
    notifyAppReady()
    或等效的Capgo启动流程已正确接入。
在Capgo更新路径验证通过前,不要删除Appflow配置。

Step 3: Replace Cloud Build Automation

步骤3:替换云构建自动化能力

If Appflow was building the app in the cloud:
  1. Inspect the existing CI/CD workflow for
    ionic appflow build
    .
  2. Replace it with repository-owned automation using the
    capacitor-ci-cd
    skill.
  3. Preserve signing inputs, environment variables, and platform-specific build arguments.
Treat Appflow build settings as migration input, not as a runtime dependency.
如果之前使用Appflow进行云端应用构建:
  1. 检查现有CI/CD工作流中的
    ionic appflow build
    命令。
  2. 使用
    capacitor-ci-cd
    技能将其替换为代码库自有的自动化流程。
  3. 保留签名输入、环境变量和平台专属构建参数。
将Appflow构建设置作为迁移参考,不要将其作为运行时依赖。

Step 4: Replace Store Publishing

步骤4:替换应用商店发布能力

If Appflow handled TestFlight or Google Play publishing:
  1. Inspect the current deployment flow.
  2. Move that workflow to the repository's publishing pipeline using the
    capacitor-app-store
    skill.
  3. Keep bundle identifiers, track selection, and credential handling unchanged unless the user wants a new release process.
如果之前使用Appflow处理TestFlight或Google Play发布:
  1. 检查当前部署流程。
  2. 使用
    capacitor-app-store
    技能将该工作流迁移到代码库的发布管道中。
  3. 除非用户想要新的发布流程,否则保持包标识符、轨道选择和凭证处理逻辑不变。

Step 5: Clean Up

步骤5:清理工作

After each migrated feature is verified:
  • remove Appflow packages and scripts
  • remove obsolete Appflow configuration
  • remove stale CI secrets that are no longer needed
每个迁移功能验证通过后:
  • 移除Appflow相关包和脚本
  • 移除过时的Appflow配置
  • 移除不再需要的旧CI密钥

Error Handling

错误处理

  • For live update migrations, validate rollback behavior before deleting the old Appflow setup.
  • For build migrations, preserve the existing signing path first and only simplify later.
  • For publishing migrations, move one destination at a time so App Store and Play failures stay isolated.
  • 热更新迁移场景下,在删除旧Appflow配置前先验证回滚功能是否正常。
  • 构建迁移场景下,先保留现有签名路径,后续再做简化。
  • 发布迁移场景下,每次只迁移一个发布目标,避免App Store和Play Store的故障互相影响。