gutenbergdocs/docs/contributors/code/react-native/osx-setup-guide.md
2025-10-22 01:40:18 +08:00

273 lines
9.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 运行演示应用
启动 Metro 打包工具:
```
npm run native start:reset
```
在另一个终端中运行以下命令,在 Android 模拟器中启动演示应用(如果模拟器尚未运行,此命令也会自动启动模拟器):
```
npm run native android
```
稍等片刻后,我们将看到类似以下界面:
<img src="https://developer.wordpress.org/files/2021/10/android-simulator.png" width="700px" alt="Android模拟器中区块编辑器的截图">
## 单元测试
```sh
npm run test:native
```
## 集成测试
[Appium](https://appium.io/) 自带诊断工具。通过以下命令运行:
```sh
npx appium-doctor
```
<img src="https://developer.wordpress.org/files/2021/10/CleanShot-2021-10-27-at-15.20.16.png" width="700px" alt="终端中运行的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
```
若一切顺利,将呈现如下效果:
<video src="https://user-images.githubusercontent.com/1270189/137403353-2a8ded47-5c7c-4f99-b2cc-fa6def4b4990.mp4" data-canonical-src="https://user-images.githubusercontent.com/1270189/137403353-2a8ded47-5c7c-4f99-b2cc-fa6def4b4990.mp4" controls="controls" muted="muted" class="d-block rounded-bottom-2 width-fit" style="max-height:640px;" alt="iOS模拟器中区块编辑器集成测试演示视频"></video>
### 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 9API 28系统。
首先启动虚拟设备:点击手机图标进入 AVD 管理器,然后点击绿色启动按钮。
<img src="https://developer.wordpress.org/files/2021/10/adv-integration.png" width="700px" alt="启动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
```
稍等片刻后应显示:
<img src="https://developer.wordpress.org/files/2021/10/CleanShot-2021-10-27-at-15.28.22.png" width="700px" alt="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 版本
<img src="https://developer.wordpress.org/files/2021/10/xcode-command-line-tools.png" width="700px" alt="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
```
<img src="https://developer.wordpress.org/files/2021/10/react-native-doctor.png" width="700px" alt="终端中运行的 react-native-community/cli doctor 工具截图">
尝试让 `doctor` 工具修复所有“通用”和“iOS”问题此时“Android”项显示❌无需担心后续会处理
### 运行演示应用
当所有通用和 iOS 问题解决后,尝试运行:
```
npm run native start:reset # 启动 metro 打包器
```
另开终端窗口执行:
```
npm run native ios
```
等待构建完成后,演示应用将在 iOS 模拟器中运行:
<img src="https://developer.wordpress.org/files/2021/10/iOS-Simulator.png" width="700px" alt="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管理器`进入:
<img src="https://developer.wordpress.org/files/2021/10/react-native-package-manager.png" width="700px" alt="Android Studio中包管理器按钮位置示意图">
在此界面可下载SDK平台、软件包及其他工具。需勾选“显示包详细信息”查看特定版本因为构建过程对E2E测试和开发环境有特定版本要求
<img src="https://developer.wordpress.org/files/2021/10/react-native-show-package-details.png" width="700px" alt="Android Studio包管理器界面突出显示包详细信息复选框">
根据[build.gradle](https://github.com/WordPress/gutenberg/blob/trunk/packages/react-native-editor/android/build.gradle)勾选所有相关软件包点击“应用”开始下载。node_modules中的build.gradle文件可能包含其他依赖项。
若不想逐行查阅文件,系统会在堆栈跟踪中提示缺失包,但此方法需多次尝试。
<img src="https://developer.wordpress.org/files/2021/10/react-native-editor-build-gradle.png" width="700px" alt="build.gradle配置文件截图">
<img src="https://developer.wordpress.org/files/2021/10/react-native-sdk.png" width="700px" alt="包管理器显示SDK平台界面">
<img src="https://developer.wordpress.org/files/2021/10/react-native-sdk-tools.png" width="700px" alt="包管理器显示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验证位置
<img src="https://developer.wordpress.org/files/2021/10/sdk-path.png" width="700px" alt="Android Studio中SDK路径定位示意图">
### 创建设备镜像
点击右下角带Android标识的手机图标创建虚拟设备镜像
<img src="https://developer.wordpress.org/files/2021/10/react-native-android-device-manager-button.png" width="700px" alt="Android设备管理器按钮位置示意图">
进入“Android虚拟设备管理器(AVD)”,点击“创建虚拟设备”,选择手机类型:
<img src="https://developer.wordpress.org/files/2021/10/react-native-android-select-hardware.png" width="700px" alt="虚拟设备配置界面截图">
选择目标SDK版本对应[build.gradle](https://github.com/WordPress/gutenberg/blob/trunk/packages/react-native-editor/android/build.gradle)中的targetSdkVersion设置
<img src="https://developer.wordpress.org/files/2021/10/react-native-adv-system-image.png" width="700px" alt="设备管理器中选择系统镜像界面">
可根据需要调整高级设置(可选),最后点击完成。