核心功能
react-native-update 技能专注于将 Pushy 热更新能力快速接入 React Native 项目,支持 React Native CLI 与 Expo 两种工程结构。其核心工作流包括:自动识别项目类型(CLI/Expo)→ 执行最小化依赖安装 → 完成 iOS/Android 原生层必要改动(Bundle URL 映射、MainApplication 集成点)→ 注入 Pushy 客户端与 UpdateProvider 启动代码 → 运行诊断脚本排查常见遗漏 → 输出可执行的「已完成/待补全/待验证」清单。
显著优点
- 双栈覆盖:同时支持传统 React Native CLI 与 Expo Managed/Bare Workflow,降低多项目维护成本。
- 最小侵入:强调「copy-paste-safe」与「smallest viable changes」,避免大范围重构现有架构。
- 诊断闭环:内置
integration_doctor.sh脚本,可在集成后自动扫描常见配置遗漏(如 appKey 缺失、update.json 未接入、原生层未注册等)。 - 冲突预警:明确提示 Expo 项目中
expo-updates与 Pushy 的冲突风险,并提供排查指引。
潜在局限与风险
- Debug 模式限制:技能明确告知热更新仅在 Release 构建生效,Debug 调试阶段无法验证完整流程,需开发者具备 Release 打包经验。
- 原生差异适配:面对 Monorepo、混合原生代码或重度定制原生层(如自定义 ReactActivity/ReactFragment)时,只能提供「定向 patch 指导」而非全自动改写,需开发者具备一定 Android/iOS 原生知识。
- 平台策略差异:iOS 与 Android 的
checkStrategy/updateStrategy配置逻辑、审核合规要求不同,需分别验证。
适合人群
- 需要为现有 React Native 项目快速接入热更新能力的移动端开发者。
- 使用 Expo Bare Workflow、希望替换或补充
expo-updates的团队。 - 对原生层改动有基础了解,但希望减少重复配置工作的工程师。
常规风险
- appKey/update.json 泄露风险:Pushy 的 appKey 与 update.json 地址若硬编码在客户端,存在被逆向提取后滥用的可能,建议配合服务端动态下发或签名验证。
- 更新策略误配:
checkStrategy与updateStrategy设置不当可能导致强制更新打断用户体验,或静默更新未生效。 - 原生层版本兼容性:React Native 版本升级(尤其是 0.70+ 新架构)可能导致原生集成点变更,需持续跟进官方 Playbook。