ionic-appflow-migration
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseIonic 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, or@capacitor/live-updatescordova-plugin-ionic
- 用户要停用Ionic Appflow
- 项目使用了Appflow Live Updates、云构建或应用商店部署功能
- 代码库中仍引用了、
ionic appflow或@capacitor/live-updatescordova-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-updatescordova-plugin-ionicdashboard.ionicframework.comappflow.ionic.io
Record whether the project currently uses:
- live updates
- cloud/native builds
- app store deployment automation
从上方注入的快照开始排查,如果迁移范围仍不明确,再扩大搜索范围。
在代码库中搜索以下内容:
ionic appflow@capacitor/live-updatescordova-plugin-ionicdashboard.ionicframework.comappflow.ionic.io
记录项目当前是否使用了:
- 热更新
- 云/原生构建
- 应用商店自动化部署
Step 2: Migrate Live Updates
步骤2:迁移Live Updates功能
If Appflow live updates are in use:
- Remove or
@capacitor/live-updates.cordova-plugin-ionic - Install and configure Capgo using the skill.
capgo-live-updates - Map Appflow channels and rollout behavior onto Capgo channels.
- Verify that or the equivalent Capgo startup flow is wired correctly.
notifyAppReady()
Do not delete Appflow configuration until the Capgo update path is validated.
如果项目使用了Appflow Live Updates:
- 移除或
@capacitor/live-updates。cordova-plugin-ionic - 使用技能安装并配置Capgo。
capgo-live-updates - 将Appflow的渠道和灰度发布规则映射到Capgo渠道。
- 验证或等效的Capgo启动流程已正确接入。
notifyAppReady()
在Capgo更新路径验证通过前,不要删除Appflow配置。
Step 3: Replace Cloud Build Automation
步骤3:替换云构建自动化能力
If Appflow was building the app in the cloud:
- Inspect the existing CI/CD workflow for .
ionic appflow build - Replace it with repository-owned automation using the skill.
capacitor-ci-cd - Preserve signing inputs, environment variables, and platform-specific build arguments.
Treat Appflow build settings as migration input, not as a runtime dependency.
如果之前使用Appflow进行云端应用构建:
- 检查现有CI/CD工作流中的命令。
ionic appflow build - 使用技能将其替换为代码库自有的自动化流程。
capacitor-ci-cd - 保留签名输入、环境变量和平台专属构建参数。
将Appflow构建设置作为迁移参考,不要将其作为运行时依赖。
Step 4: Replace Store Publishing
步骤4:替换应用商店发布能力
If Appflow handled TestFlight or Google Play publishing:
- Inspect the current deployment flow.
- Move that workflow to the repository's publishing pipeline using the skill.
capacitor-app-store - Keep bundle identifiers, track selection, and credential handling unchanged unless the user wants a new release process.
如果之前使用Appflow处理TestFlight或Google Play发布:
- 检查当前部署流程。
- 使用技能将该工作流迁移到代码库的发布管道中。
capacitor-app-store - 除非用户想要新的发布流程,否则保持包标识符、轨道选择和凭证处理逻辑不变。
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的故障互相影响。