迁移摘要
- Capgo 是一项帮助开发团队向已部署应用推送 Live Update 的服务。
- 使用 Capacitor,用 jQuery Mobile、Framework 7、Sencha、KendoUI、Ionic 甚至你自己的自定义方案编写的 JS 应用都可以迁移。 无需现有的 Ionic 应用。.
- Colt 为 App Center Build(构建 Android/iOS 应用)以及 Test、Diagnostics 和 Analytics 服务提供同等替代方案。
注意
如果您的应用仍在使用 Cordova,则需要先 迁移到 Capacitor 然后再迁移到 Capgo。
由 Ionic 团队打造,作为 Cordova 的精神继任者,Capacitor 让开发能够更贴近原生工具和能力,旨在提供更出色的用户体验和性能。
幸运的是,迁移过程非常简单,大多数 Cordova 插件都与 Capacitor 保持向后兼容。 从这里开始迁移.
关于 Capgo
Capgo 负责处理应用的持续更新。开发团队可以全身心投入到应用的独特功能开发中,将复杂的应用交付流程交给 Capgo。
Capgo 填补了 Web 端交付与移动端之间的空白。
Capgo 前置条件
与 App Center 一样, Capgo 支持托管在 Azure DevOps、Bitbucket、GitHub 和 GitLab Git 仓库中的应用。
安装 Capgo CLI
注意
在继续之前,您的电脑需要安装 Node 和 NPM。请务必使用 当前的 LTS 版本 Capgo 不支持旧版本。
创建 package.json 以及 Capacitor 配置文件
注意
在开始之前,建议您在一个新的 Git 分支上进行操作。
自 Capgo 旨在实现 capacitor 应用自动化,它需要一个您的应用可能尚未包含的文件。首先,创建一个 capacitor.config.json 文件。最简单的方法是在应用根目录下运行:
npm install @capacitor/core
然后,使用 CLI 问答流程初始化 Capacitor:
npx cap init
CLI 会向您提出几个问题,首先是您的应用名称,以及您想要为应用使用的 package ID。
最后,将新文件提交到您的项目中:
git add .git commit -m "added package json and capacitor config" && git push
迁移 Code
现在您已经拥有了新的必需 Capgo 文件就绪后,我们就可以开始关注应用本身了。 Capgo 要求整个构建好的应用都位于名为 dist.
如果构建好的 code 不在 dist 目录中,请在 Capacitor 配置文件中修改此值。
应用的目录结构应如下所示:

Capgo 配置
应用已准备好进行 Capgo 集成,现在该注册并获取您的 API key,来上传第一个版本了!首先 注册一个 Capgo 账号.
登录 Capgo 后,前往 Account 页面,点击 API 密钥,然后点击 ‘write’ 即可将其复制到剪贴板。
安装 Capgo SDK
在命令行中,直接进入 Capacitor 应用项目的根目录,运行以下命令:
npm i @capgo/capacitor-updater && npx cap sync
将插件安装到你的 Capacitor App 中。
然后将此 code 添加到你的应用中,以替代 CodePush:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
这将告知原生插件安装已成功。
部署 Live Updates (CodePush 的替代方案)
Live Update 功能通过使用已安装的 Capgo SDK 在你的原生应用中监听特定的 Deploy Channel Destination。当 Web build 被分配到某个 Channel Destination 时,该更新将部署到配置为监听该特定 Channel Destination 的用户设备二进制文件中。
登录 Capgo CLOUD
首先,使用 all apikey 使用你账户中的 apikey,通过 CLI 登录:
npx @capgo/cli@latest login YOURKEY
添加你的第一个应用
我们先使用 CLI 在 Capgo Cloud 中创建应用。
npx @capgo/cli@latest app add
这个命令会使用 Capacitor 配置文件中定义的所有变量来创建应用。
上传你的第一个 bundle
运行以下命令构建 code,并将其发送到 Capgo:
npx @capgo/cli@latest bundle upload --channel production
默认情况下,版本名称将取自你的 package.json 文件。
查看 Capgo 如果构建已存在。
你甚至可以用我的 移动端沙盒 App 进行测试.
将 Channel 设为默认
将 App 发送到 Capgo 后,你需要将你的 Channel default 设置为默认,以便 App 能够接收来自 Capgo 的更新。
npx @capgo/cli@latest channel set production -s default
配置 App 以验证更新
将此配置添加到你的主 JavaScript 文件中。
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
然后执行 npm run build && npx cap copy 来更新你的 App。
在设备上接收 Live Update
为了让你的应用能从 Deploy 接收 live update,你需要在真机或模拟器上运行 App。最简单的方法是使用以下命令,在模拟器或连接到电脑的真机上启动你的本地 App。
npx cap run [ios | android]
打开 App,将其切至后台后再重新打开,你应该能在 logs 中看到 App 已完成更新。
恭喜!🎉 您已成功部署了第一个 Live Update。这仅仅是您使用 Live Updates 的开始。欲了解更多信息,请查看完整的 Live Updates 文档.
移除 App Center 依赖
既然我们已经集成了 Capgo 的服务,您应当移除所有对 App Center 的引用。除了移除未使用的 code/services 是最佳实践外,移除 SDK 还能减小您的 App 体积。
首先,打开终端并卸载 App Center 插件:
cordova plugin remove cordova-plugin-appcenter-analytics cordova-plugin-appcenter-crashes cordova-plugin-code-push
接下来,打开 config.xml 并移除以下 preference 配置值。它们看起来类似于:
<preference name="APP_SECRET" value="0000-0000-0000-0000-000000000000" /><preference name="CodePushDeploymentKey" value="YOUR-ANDROID-DEPLOYMENT-KEY" /><preference name="CodePushPublicKey" value="YOUR-PUBLIC-KEY" />
如果您的 App 中使用了 App Center Analytics,请移除以下 preferences 内容: APPCENTER_ANALYTICS_ENABLE_IN_JS 以及 APPCENTER_CRASHES_ALWAYS_SEND.
移除以下内容 <access /> 包含以下内容:
<access origin="https://codepush.appcenter.ms" /><access origin="https://codepush.blob.core.windows.net" /><access origin="https://codepushupdates.azureedge.net" />
从 CSP 中移除 CodePush 的引用 meta 标签,位于 index.html 文件 (https://codepush.appcenter.ms):
<meta http-equiv="Content-Security-Policy" content="default-src https://codepush.appcenter.ms 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *" />
最后,在您的应用中,移除所有指向 App Center 服务的 code 引用,例如: codePush.sync();.
下一步
您已从 App Center 迁移到 Capgo 并开始使用 Live Updates。这仅仅是 Capgo 功能的开始。您可以进一步探索该服务的其他功能,包括 Channel(多环境管理)和 override。若要集成 Cloud CLI,请在您选择的 CI/CD 平台(如 GitHub Action、GitLab、Jenkins 等)中使用 Capgo。
自动发送应用更新
如果您的 code 托管在 GitHub 上,得益于 GitHub actions,您只需再执行几个步骤即可设置自动构建和发布。
我写了第二篇文章来详细介绍操作方法。
额度
非常感谢 Ionic,本文基于 这篇文章 并使用 chat-gpt-3 重写及适配。
继续阅读:从 App Center 迁移至 Capgo
如果你正在使用 从 App Center 迁移到 Capgo 要规划迁移和企业运营,请将其与 Capgo 企业版 用于 Capgo Enterprise 中的产品工作流, Ionic Enterprise 插件替代方案 用于 Ionic Enterprise 插件替代方案的产品工作流, Capgo 替代方案 用于 Capgo 替代方案的产品工作流, Capgo 咨询 适用于 Capgo Consulting 的产品工作流,以及 Capgo 高级支持 适用于 Capgo Premium Support 的产品工作流。