### 运行演示应用 启动 Metro 打包工具: ``` npm run native start:reset ``` 在另一个终端中运行以下命令,在 Android 模拟器中启动演示应用(如果模拟器尚未运行,此命令也会自动启动模拟器): ``` npm run native android ``` 稍等片刻后,我们将看到类似以下界面: Android模拟器中区块编辑器的截图 ## 单元测试 ```sh npm run test:native ``` ## 集成测试 [Appium](https://appium.io/) 自带诊断工具。通过以下命令运行: ```sh npx appium-doctor ``` 终端中运行的appium-doctor工具截图 请解决所有必需的依赖项。 ### iOS 集成测试 若能确保 iOS 本地环境正常运行,iOS 端到端测试将十分简单。首先停止所有正在运行的 Metro 进程(之前通过 `npm run native start:reset` 启动)。 然后在终端中输入: ```sh npm run native test:e2e:ios:local ``` 通过指定文件名可运行部分测试用例: ```sh npm run native test:e2e:ios:local gutenberg-editor-paragraph.test.js ``` 若一切顺利,将呈现如下效果: ### Android 集成测试 **创建新的虚拟设备**,需与 [packages/react-native-editor/**device-tests**/helpers/caps.js](https://github.com/WordPress/gutenberg/blob/trunk/packages/react-native-editor/__device-tests__/helpers/caps.js#L30) 中指定的设备参数匹配。截至本文撰写时,需使用 Pixel 3 XL 镜像配合 Android 9(API 28)系统。 首先启动虚拟设备:点击手机图标进入 AVD 管理器,然后点击绿色启动按钮。 启动Android模拟器的操作截图 确保没有 Metro 进程正在运行(之前通过 `npm run native start:reset` 启动)。 然后在终端中运行: ```sh npm run native test:e2e:android:local ``` 通过指定文件名可运行部分测试用例: ``` npm run native test:e2e:android:local gutenberg-editor-paragraph.test.js ``` 稍等片刻后应显示: Android模拟器中区块编辑器集成测试截图 # React Native 开发环境配置指南(macOS 版) 是否对移动端原生编辑器开发感兴趣?本指南将手把手带您完成开发环境配置! 请注意,本文说明主要针对 macOS 环境。若需配置其他环境,请参考 [React Native 快速入门文档](https://reactnative.dev/docs/environment-setup) 获取相关指引和步骤。 ## 克隆 Gutenberg 项目 ```sh git clone git@github.com:WordPress/gutenberg.git ``` ### 安装 node 与 npm 若您同时参与多个 JS 项目,建议使用 node 版本管理器。管理器可让您自由切换不同的 node 和 npm 版本。 我们推荐使用 [nvm](https://github.com/nvm-sh/nvm)。 安装 nvm 后,在克隆项目的根目录下执行: ```sh nvm install 'lts/*' nvm alias default 'lts/*' # 设置为新终端打开时的默认版本 nvm use # 切换至项目配置版本 ``` 随后安装依赖: ``` npm ci ``` ### 已有旧版 Gutenberg 代码? 若您已持有 Gutenberg 代码,请务必彻底清理 `node_modules` 并重新安装依赖。 这将有助于避免后续出现错误。 ```sh npm run distclean npm ci ``` ## iOS 环境配置 ### CocoaPods 依赖管理 需要安装 [CocoaPods](https://guides.cocoapods.org/using/getting-started.html) 来获取 React 及第三方依赖。安装步骤因 Ruby 管理方式而异。 #### 系统自带 Ruby 若使用 MacOS 默认 Ruby,需通过 `sudo` 命令安装 Cocoapods: ``` sudo gem install cocoapods ``` 注意:Mac M1 芯片与 Cocoapods 存在兼容性问题。若遇安装问题,可尝试执行以下命令安装 ffi 包(确保以正确架构安装 pods): ``` sudo arch -x86_64 gem install ffi arch -x86_64 pod install ``` #### Ruby 版本管理器 若使用 Ruby 版本管理器,可能无需手动安装 Cocoapods 或 `ffi` 包。请参照所选管理器的文档进行操作。 若需在 [WordPress iOS 应用](https://github.com/wordpress-mobile/WordPress-iOS) 中运行 Gutenberg(而非仅演示应用),推荐使用 [`rbenv`](https://github.com/rbenv/rbenv) 管理器。 ### 配置 Xcode 通过 App Store 安装 [Xcode](https://developer.apple.com/xcode/) 后启动: - 接受许可协议 - 确认 `Xcode > 偏好设置 > 位置 > 命令行工具` 指向当前 Xcode 版本 Xcode 命令行工具设置界面截图 ### 环境诊断工具 可通过 [react-native doctor](https://reactnative.dev/blog/2019/11/18/react-native-doctor) 检测开发环境缺失项。在 Gutenberg 项目根目录或 `/packages/react-native-editor` 文件夹内运行: ```sh npx @react-native-community/cli doctor ``` 终端中运行的 react-native-community/cli doctor 工具截图 尝试让 `doctor` 工具修复所有“通用”和“iOS”问题(此时“Android”项显示❌无需担心,后续会处理!) ### 运行演示应用 当所有通用和 iOS 问题解决后,尝试运行: ``` npm run native start:reset # 启动 metro 打包器 ``` 另开终端窗口执行: ``` npm run native ios ``` 等待构建完成后,演示应用将在 iOS 模拟器中运行: iOS 模拟器中的区块编辑器运行截图 ## Android 环境配置 ### Java开发工具包(JDK) [React Native文档](https://reactnative.dev/docs/environment-setup)推荐的JDK名为Azul Zulu。可通过[Homebrew](https://brew.sh/)安装。安装Homebrew后,在终端执行以下命令: ``` brew tap homebrew/cask-versions brew install --cask zulu11 ``` 若系统已安装JDK,需确保版本为JDK 11或更高。 ### 配置Android Studio 编译Android应用需先[下载Android Studio](https://developer.android.com/studio)。 打开现有项目,选择已克隆的Gutenberg文件夹。 点击下图高亮的立方体图标进入SDK管理器,也可通过`工具 > SDK管理器`进入: Android Studio中包管理器按钮位置示意图 在此界面可下载SDK平台、软件包及其他工具。需勾选“显示包详细信息”查看特定版本,因为构建过程对E2E测试和开发环境有特定版本要求: Android Studio包管理器界面,突出显示包详细信息复选框 根据[build.gradle](https://github.com/WordPress/gutenberg/blob/trunk/packages/react-native-editor/android/build.gradle)勾选所有相关软件包,点击“应用”开始下载。node_modules中的build.gradle文件可能包含其他依赖项。 若不想逐行查阅文件,系统会在堆栈跟踪中提示缺失包,但此方法需多次尝试。 build.gradle配置文件截图 包管理器显示SDK平台界面 包管理器显示SDK工具界面 ### 更新路径配置 导出以下环境变量并更新$PATH。若终端使用zsh可添加到`~/.zshrc`文件,若使用bash则添加到`~/.bash_profile`: ```sh ### Android Studio自带的Java: export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home ### Android Home可在Android Studio中配置:偏好设置 > 系统设置 > Android SDK export ANDROID_HOME=$HOME/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/emulator export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/platform-tools ``` 保存后执行source命令或重启终端使配置生效: ```sh source ~/.zshrc ``` 或 ```sh source ~/.bash_profile ``` 若找不到SDK路径,可通过Android Studio > 偏好设置 > 系统设置 > Android SDK验证位置: Android Studio中SDK路径定位示意图 ### 创建设备镜像 点击右下角带Android标识的手机图标创建虚拟设备镜像: Android设备管理器按钮位置示意图 进入“Android虚拟设备管理器(AVD)”,点击“创建虚拟设备”,选择手机类型: 虚拟设备配置界面截图 选择目标SDK版本(对应[build.gradle](https://github.com/WordPress/gutenberg/blob/trunk/packages/react-native-editor/android/build.gradle)中的targetSdkVersion设置): 设备管理器中选择系统镜像界面 可根据需要调整高级设置(可选),最后点击完成。