Gutenberg 仓库包含了基于 React Native 的移动端编辑器的源代码。
项目状态
目前,在 trunk 分支上维护 React Native 移动编辑器的工作已暂停,且已知在升级到 React 19 后该编辑器会出现故障(参见 #61521)。React 19 与当前的 Gutenberg Mobile 设置不兼容,而在 WP Mobile 团队探索移动应用中区块编辑器的前进路径期间,Gutenberg Mobile 几乎没有活跃的开发工作。有关背景信息,请参阅跟踪问题 (#71336)。
如果需要对现有的 Gutenberg Mobile 构建进行修复,请从最近的 React Native 发布版本——标签 rnmobile/1.121.0(位于提交 e63b8b8,参见 #63744)——创建分支,并从此处切出一个次要版本(minor release)。针对 trunk 以恢复 React Native 兼容性的新工作应事先与 WP Mobile 团队协调。
关注移动端
贡献者需要确保在代码重构过程中更新所有受影响的原生移动文件,因为我们目前还无法依赖自动化工具来完成这项工作。例如,重命名一个函数或 prop 也应在原生模块中同步执行,否则移动客户端将会崩溃。我们在 PR 中添加了一些特定的移动端 CI 测试作为保障措施,但距离完善仍有很长的路要走。请大家耐心等待,并提前表示感谢。❤️🙇
原生移动端特定文件
大部分与原生移动端共享的代码都位于相同的 JavaScript 模块和 SASS 样式文件中。当代码路径需要分化时,会创建文件的 .native.js 或 .native.scss 变体。在某些情况下,还可以找到针对 Android (.android.js) 或 iOS (.ios.js) 的平台特定文件。
在 Android 和 iOS 上运行 Gutenberg Mobile
关于如何在 Android 或 iOS 上运行 Gutenberg Mobile Demo App 的说明,请参阅基于 React Native 的移动版 Gutenberg 入门指南
此外,移动客户端通过官方 WordPress 应用进行打包和发布。尽管其构建流水线与移动演示应用略有不同,并且目前存在于单独的仓库中(这是原生移动端仓库),但源代码本身直接取自本仓库以及“Web”端代码路径。
持续集成中的原生移动端 E2E 测试
如果您在拉取请求中遇到失败的 Android/iOS 测试,我们建议采取以下步骤:
- 重新运行失败的 GitHub Action 作业(如何重新运行的指南)– 这在大多数情况下可以解决失败的测试。
- 您可以按照E2E 测试文档中的步骤在本机上运行 E2E 测试,以检查测试是否在本地失败。
- 除了阅读 E2E 测试日志外,您还可以从 GitHub 作业的 Artifacts(工件)部分下载视频录制,其中可能包含其他有用的信息。
- 检查您的 PR 中的任何更改是否需要对文件的
.native.js版本进行相应的修改。 - 最后,如果您被失败的移动测试卡住,欢迎在 WordPress Core Slack 的 #mobile 或 #core-editor 频道联系贡献者,免费加入。
调试原生移动端单元测试
如需在本地调试原生移动端单元测试,请遵循原生移动端测试中的说明。
国际化 (i18n)
有关此主题的更多信息,可以在React Native 国际化指南中找到。