# React Native 移动编辑器

Gutenberg 代码库包含了基于 [React Native](https://reactnative.dev/) 的移动端编辑器源码。

## 移动端注意事项

贡献者需确保在代码重构期间更新所有受影响的本地移动文件，因为我们目前还无法依赖自动化工具完成这一工作。例如，重命名函数或属性时也需在原生模块中同步修改，否则移动客户端将出现故障。我们已在 PR 中设置了移动端专项 CI 测试作为防护机制，但仍有诸多待完善之处。感谢您的理解与支持。❤️🙇‍

## 移动端专属文件

与移动端共享的代码大多位于相同的 JavaScript 模块和 SASS 样式文件中。当代码路径需要区分时，会创建 `.native.js` 或 `.native.scss` 格式的文件变体。某些情况下还可找到针对 Android (`.android.js`) 或 iOS (`.ios.js`) 的平台专属文件。

## 在 Android 和 iOS 上运行 Gutenberg Mobile

如需了解如何在 Android 或 iOS 上运行 **Gutenberg Mobile 演示应用**，请参阅 [React Native 移动版 Gutenberg 入门指南](/docs/contributors/code/react-native/getting-started-react-native.md)

此外，移动客户端通过[官方 WordPress 应用](https://wordpress.org/mobile/)进行打包和发布。虽然构建流程与移动演示应用略有不同，且目前存放在独立代码库中（[此处为移动端原生代码库](https://github.com/wordpress-mobile/gutenberg-mobile)），但其源代码直接取自本代码库及“网页”端代码路径。

## 持续集成中的移动端端到端测试

若在拉取请求中遇到 Android/iOS 测试失败，建议采取以下步骤：

1. 重新运行失败的 GitHub Action 任务（[重新运行指南](https://docs.github.com/en/actions/configuring-and-managing-workflows/managing-a-workflow-run#viewing-your-workflow-history)）—— 多数情况下可解决测试失败问题
2. 按照[端到端测试文档](/packages/react-native-editor/__device-tests__/README.md)中的步骤在本地运行测试，验证是否会出现相同故障
3. 除了查看端到端测试日志外，还可从 GitHub 任务的 Artifacts 区域下载视频记录以获取更多有效信息
4. 检查 PR 中的变更是否需要对 `.native.js` 格式的文件进行相应修改
5. 若最终仍无法解决移动测试失败问题，欢迎通过 Slack 在 #mobile 或 #core-editor 频道联系贡献者（[免费加入](https://make.wordpress.org/chat/)）

## 调试移动端单元测试

需要时可按照[移动端原生测试指南](/docs/contributors/code/react-native/integration-test-guide.md)中的说明在本地调试移动端单元测试。

## 国际化 (i18n)

关于此主题的更多信息请参阅 [React Native 国际化指南](/docs/contributors/code/react-native/internationalization-guide.md)。