React Native 棕地迁移助手
帮助原生 iOS 或 Android 应用分阶段接入 React Native 或 Expo。
证据显示有路径选择门槛、占位符解析、分步验证、停止条件、隔离 facade 和受信任安装路径提示;但缺少明确的用户确认、权限边界、敏感数据/依赖供应链说明、回滚方案和外部副作用披露,因此扣分。
证据显示流程结构清晰,包含前置条件、检查清单、失败排查和停止条件;但静态材料未提供测试套件或执行结果,多个关键参考文件未提供,且具体 API、版本兼容性和异常输入处理仍有不确定性,因此按静态上限保守扣分。
证据显示目标用户、Expo 与 bare 场景、路径选择和不应使用本技能的迁移决策场景较明确;但非适用边界、版本/环境矩阵、中国语言支持和中国大陆网络可达性未说明,且依赖外部文档,因此扣分。
证据显示有 YAML 元数据、MIT 许可证、分层目录、快速参考、相关技能、常见陷阱和故障处理;但缺少明确版本号、变更日志、维护责任人和更新政策,部分链接目标未包含在给定材料中,因此扣分。
证据显示可覆盖安装、打包、发布、宿主集成和运行验证的核心流程,命令与代码片段具有直接参考价值;但输出依赖项目结构和具体版本,未提供可复现执行证据,仍需较多人工适配和审查,因此按静态上限评为中等。
证据显示列出了固定格式的官方文档来源、命令成功条件和运行时验证要求;但没有提交测试、CI 覆盖或第三方执行记录,关键结论主要依赖文档与作者编写内容,因此仅给有限分数。
- 执行 npx、npm install、pod install、Gradle 和发布命令前,应确认依赖版本、来源、权限和变更范围,并保留可回滚状态。
- 参考文件要求使用 agent-device,但材料未定义其安装来源、权限边界或无设备时的替代验证流程。
- 多个关键路径依赖未提供的参考文件和外部官方文档,不能仅凭本材料确认 API 与当前版本兼容。
- 未说明中国大陆网络不可达时的文档、包注册表或工具替代方案。
这个 Skill 能做什么,适合哪些场景?
该技能面向已经决定采用棕地迁移的团队,指导原生应用逐步引入 React Native 或 Expo。它要求先在 Expo 与裸 React Native 路径之间完成选择,再进行集成设置、产物打包和宿主应用接入。流程覆盖 iOS XCFramework、Android AAR 以及按功能或页面逐步集成。它适合已有原生应用、希望降低一次性重写风险的开发团队。
读取项目文件以判断是否存在 React Native、Expo 配置和原生目录;引导用户选择 Expo 或裸 React Native 路径;使用 @callstack/react-native-brownfield 进行初始设置;指导从 React Native 源应用生成 iOS XCFramework 和 Android AAR;指导将产物接入原生宿主应用,并使用 agent-device 打开宿主应用、导航到 React Native 页面、采集快照或截图及设备证据。
- 维护原生 iOS 应用、已接受渐进式迁移并需要接入首个 React Native 页面时。
- 维护原生 Android 应用、需要生成并发布 Android AAR 后接入宿主应用时。
- 团队已有 Expo 应用,需要通过 Expo 插件完成棕地集成和打包时。
- 团队已有裸 React Native 应用,需要生成 XCFramework 或 AAR 并集成到原生宿主时。
这个 Skill 有哪些优点和局限?
- 覆盖 Expo 与裸 React Native 两条棕地迁移路径。
- 包含初始设置、XCFramework/AAR 打包和原生宿主集成流程。
- 强调先验证打包命令,再进行宿主应用集成。
- 支持按功能或页面逐步 rollout。
- 仅适用于已经决定采用棕地迁移的项目,不能替代迁移路径评估。
- 提供的主文件依赖多个未随题面展开的 reference 文件,具体平台命令需查阅官方文档或引用文件。
- 题面没有提供测试套件、平台覆盖测试结果或实际构建成功证据。
- 设备验证依赖环境中可用的 agent-device;缺失时需要额外安装或启用。
如何安装这个 Skill?
仓库 README 支持从 GitHub 获取整套技能:将仓库克隆到本地后,把 skills/* 复制到项目的 .codex/skills/,或复制到用户级的 ~/.codex/skills/,然后重启 Codex。README 未提供只安装本技能的专用命令。
如何使用这个 Skill?
在已决定采用棕地迁移后触发,例如:“为现有原生 Android 应用接入一个 React Native 页面,并生成 AAR。”技能会先判断 Expo 或裸 React Native 路径;如果仍无法判断,需要先回答路径区分问题。不要在同一任务中混用两条路径。
这个 Skill 与同类方案有什么区别?
技能将 Expo 与裸 React Native 作为两条可选迁移路径:Expo 路径适用于存在 Expo 配置或需要 Expo 插件工作流的项目;裸 React Native 路径适用于使用原生目录和直接 React Native CLI 工作流的项目。