需要更快的 应用程序更新 而无需等待应用商店延迟? Capgo 让您即刻将安全的Over-the-Air (OTA)更新推送给您的用户。
Key Takeaways:
- 什么是Capgo? 一个开源的平台,用于 Capacitor 应用程序的实时更新。
- 为什么需要OTA更新? 节省时间,改善用户体验,并快速修复bug。
- 如何开始?
- 安装 Capgo 插件:
npm install @capgo/capacitor-updater - 配置您的应用程序使用一个API密钥。
- 使用“生产”或“beta”等频道进行针对性的发布.
- 安装 Capgo 插件:
- 高级功能: 端到端加密、错误处理和CI/CD集成.
Capgo的文档(capgo.app/docs)提供了从安装到高级配置的逐步指南,包括安全性和故障排除。从安装到高级配置,它是您进行无缝更新的必备指南.
CapgoCapacitorJs插件Live更新

使用Capgo文档
有效地浏览文档对于使用OTA更新至关重要。Capgo的文档提供了详细的指南,帮助您将实时更新集成到Capacitor应用中。
文档位置
您可以访问Capgo的文档在 capgo.app/docs [1]它是根据特定目的组织的:
| 章节 | 目的 | 关键话题 |
|---|---|---|
| 入门 | 初始设置 | 安装步骤 API密钥设置 |
| 配置 | 核心设置 | 插件配置、环境设置 |
| API 参考 | 技术细节 | 方法、参数、返回值 |
| 安全 | 保护措施 | 加密设置、签名验证 |
| 故障排除 | 问题解决 | 常见问题、诊断工具 |
重要术语和概念
以下是您将遇到的关键术语:
- 频道: 这些是用于控制版本分发的更新流。例如,您可以设置“生产”,“beta”和“测试”频道来满足不同用户群的需求 [4].
- 更新策略: 这些定义了如何分发和应用更新。选项包括自动下载、安装时间和用户提示 [1].
- 应用状态监听器: 这些组件跟踪应用程序是否处于前台或后台 [4].
- 捆绑包: 包含应用程序新版本的打包更新文件,包括资产、code 变更和配置更新 [4].
Code 示例和教程
文档提供了简化集成的示例code。以下是使用 TypeScript/JavaScript 的基本示例:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Initialize the updater
await CapacitorUpdater.notifyAppReady()
对于更复杂的用例,文档包含了现实世界的示例 [2][3]例如:
- 切换通道进行A/B测试
- 自定义更新流程,包括用户提示
- 处理错误并实施回滚
- 将更新与CI/CD管道集成
每个教程都突出了性能考虑和安全方面,帮助您做出明智的决定。 文档频繁更新以包含最新功能和最佳实践 [1].
要了解实现细节,请查看下一步的设置指南。
设置OTA更新
在Capgo中设置OTA更新以简化您的部署过程。 请遵循这些步骤和提示进行无忧的配置。
基本设置步骤
首先在您的Capacitor项目中安装Capgo插件:
npm install @capgo/capacitor-updater
npx cap sync
接下来更新 capacitor.config.json 文件中包含 Capgo API:
{
"plugins": {
"CapacitorUpdater": {
"autoUpdate": true,
"apiKey": "YOUR_API_KEY_HERE"
}
}
}
然后,在您的应用程序的主文件中初始化更新器,以检测更新:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.notifyAppReady();
完成此步骤后,您可以设置通道来管理不同的更新流:
更新通道设置
组织您的 更新通道 以适应您的部署需求:
| 通道类型 | 目的 | 使用场景 |
|---|---|---|
| 生产 | 稳定版本 | 广泛用户群 |
| 测试环境 | 预发布测试 | QA团队和beta测试者 |
| beta | 功能测试 | 早期采用者 |
要上传一个更新到一个特定的频道,使用 Capgo CLI:
npx @capgo/cli upload -c production
更新方法
Capgo 提供了两种主要的方式来处理更新:
自动更新
通过设置 autoUpdate: true 在您的配置中启用自动更新。这确保了更新在后台应用,无需开发人员额外的努力。
手动更新 为了获得更多控制,您可以手动管理更新。使用以下模式检查并应用更新:
// Check for updates
const update = await CapacitorUpdater.download();
// Install when ready
if (update) {
await CapacitorUpdater.set(update);
}
对于关键更新,您可以在进行之前提示用户:
if (update.version > currentVersion) {
const userConsent = await showUpdatePrompt();
if (userConsent) {
await CapacitorUpdater.set(update);
}
}
您还可以使用自定义ID和通道来针对特定用户组:
await CapacitorUpdater.setCustomId('beta-tester-123');
await CapacitorUpdater.setChannel('beta');
最后,请确保包含错误处理和回滚选项:
try {
await CapacitorUpdater.set(update);
} catch (error) {
await CapacitorUpdater.reset(); // Revert to the last working version
console.error('Update failed:', error);
}
通过这些步骤,您的OTA更新系统就准备好了。探索高级设置来进一步定制更新过程。
sbb-itb-f9944d2
高级设置
提高您的 Capgo OTA更新 通过添加安全措施和灵活的更新配置来设置。这些选项确保了安全和smooth的更新体验,同时满足了应用商店的指南。
安全功能
Capgo 提供强大的安全协议来保护您的更新包并安全地将它们交付给用户。该平台使用端到端加密和公钥密码学来处理所有更新 [1]以下是如何启用关键安全功能的说明
// Enable bundle verification
await CapacitorUpdater.setVerifyBundles(true);
// Configure encryption settings
await CapacitorUpdater.configure({
encryption: {
enabled: true,
failOnError: true
}
});
安全功能组件
| 描述 | 实现 | 包装完整性 |
|---|---|---|
| 通过加密签名验证包的真实性 | 自动启用setVerifyBundles()方法 | 安全功能 |
| 回滚保护 | 如果更新失败,会回滚到稳定版本 | 更新过程中内置 |
| 访问控制 | 基于角色的权限管理更新 | 通过控制台配置 |
更新行为设置
通过事件监听器和配置选项,您可以自定义更新的传递和安装方式。使用这些设置调整更新的时间和用户交互:
// Listen for when an update is available
CapacitorUpdater.addListener('updateAvailable', async (info) => {
if (info.version > currentVersion) {
// Custom update logic based on app state
const isAppInactive = await checkAppState();
if (isAppInactive) {
await CapacitorUpdater.download();
}
}
});
// Monitor download completion
CapacitorUpdater.addListener('downloadComplete', (info) => {
console.log(`Update ${info.version} ready to install`);
// Implement custom installation timing if desired
});
对于分阶段发布,您可以直接通过控制台或使用 code 配置更新分发
// Set custom update conditions for a gradual rollout
await CapacitorUpdater.configure({
rollout: {
percentage: 25, // Start with 25% of users
timeInterval: 24 // Increase rollout percentage every 24 hours
}
});
处理特定版本相关行为:
// Handle version-specific update failures
CapacitorUpdater.addListener('updateFailed', async (info) => {
if (info.error.code === 'VERSION_MISMATCH') {
await CapacitorUpdater.reset(); // Revert to the last stable version
// Optionally, handle error notification here
}
});
这些设置确保更新可靠,同时允许您根据应用需求调整更新过程。始终在 Capgo 的测试环境中彻底测试更新,然后将其发布到生产环境 [2].
问题解决指南
Capgo的错误日志和内置工具有助于解决OTA更新的挑战,同时确保您的应用程序符合商店的要求。
常见问题和解决方案
以下是典型的问题和解决方法:
-
下载失败 症状: 下载过程中会卡住或无法完成。 解决方案: 检查您的网络连接,确认更新URL有效,并添加重试机制来处理中断。
-
版本冲突 症状: 更新可能无法安装或导致应用程序不稳定。 解决方案: 使用明确的版本号避免冲突并为安全性实施回滚选项。
-
安装错误 症状: 更新失败或触发自动回滚。 解决方案: 确保在更新成功后调用
notifyAppReady()以防止回滚。
对于大于 50MB 的更新,分割它们为更小的文件可以在 Android 设备上提高性能。 [5].
使用详细的错误日志来捕捉问题。例如,实现此监听器:
CapacitorUpdater.addListener('updateFailed', (error) => {
console.log(`Update failed: ${error.code}`);
logUpdateError({
errorCode: error.code,
deviceInfo: error.device,
timestamp: new Date().toISOString()
});
});
通过结合错误日志与预检查,您可以有效地处理这些问题,然后才关注遵守性。
应用商店规则
技术修复不足 - 你的更新也需要与应用商店指南保持一致。
Apple App Store Requirements:
- 用户透明度: 清晰地告知用户更新内容并获取他们的同意。
- 核心功能: 确保您的应用程序的主要功能保持完整且经过审查。
- 安全措施: 使用安全的方法传输更新。
Android 实现:
await CapacitorUpdater.configure({
updateNotification: {
title: "Update Available",
message: "A new version is available. Please update to access the latest features.",
requireUserConsent: true
}
});
最佳实践:
- 版本控制: 分阶段发布更新以减少冲突。
- 更新通知: 提供清晰易用的更新提示。
- 安全性: 验证捆绑包的完整性并使用加密来保护数据。
概要
本节将主要概念汇总到一起。
Capgo的文档提供了清晰的指南,帮助开发者在Capacitor应用中集成OTA更新,同时遵守应用商店的规定。
使用Capgo的资源,开发者可以实现关键功能,如 端到端加密 和 CI/CD集成,涵盖从初始设置到高级配置的所有内容。 [1].
关键实施领域
| 方面 | 关键关注点 | 哪里可以找到 |
|---|---|---|
| 安全性 | 加密和完整性检查 | 安全功能 部分 |
| 合规性 | 满足苹果和安卓要求 | 应用商店规则 指南 |
| 更新管理 | 版本控制和回滚选项 | 更新方法 指南 |
| 错误处理 | 日志和故障排除步骤 | 问题解决指南 |
这些区域构成了Capgo的更新管理系统的骨架。
Capgo的CLI和分析工具简化了 在应用程序整个生命周期中 管理更新 [1].
欲获得更多支持,请您可以探索以下资源 API文档, 示例项目, 和 社区论坛 [2].
从如何使用 Capgo 文档进行 OTA 更新继续
如果您正在使用 如何使用 Capgo 文档进行 OTA 更新 来规划安全性和合规性,连接它 加密 加密的实现细节 合规 合规的实现细节 Capgo 安全扫描器 为Capgo安全扫描器产品工作流程而设计的 Capgo安全 为Capgo安全产品工作流程而设计的, Capgo信任中心 为Capgo信任中心产品工作流程而设计的。