使用 Expo 框架试图上手 React Native 移动端开发记录

2026年1月26日Elecmonkey

完全没有移动端开发经验/知识,完全没有接触过 Kotlin 和 Swift。纯记录折腾成功的流程。

创建项目

bash
1pnpx create-expo-app@latest

创建一个 demo 项目,然后让 AI 随便改一改,把名字换了,做了一个生成随机数的小 demo。

在 package.json 添加以下 script:

json
1"web": "expo start --web"

运行:

bash
1pnpm web

打开浏览器,没大问题,就用这个 demo 做测试了。

Android 端

Android 模拟器运行

安装 Android Studio!初次打开 Android Studio 会提示安装 Android SDK,我下载了 Android API 36,看起来是最新的,不太清楚对应什么范围的 Android 版本号。

然后在顶部找 Tools -> Device Manager,创建一个 Android 手机的模拟器,我选了 Pixel 7 Pro,API 36. 把模拟器跑起来,放置备用。

package.json 里应该默认有:

json
1"ios": "expo run:android"

所以运行:

bash
1pnpm android

如果刚刚的模拟器在后台正常运行,这一步应该是能连上去的,第一次需要等待自动安装 Expo Go,有进度条能看着它动。完成后:

rn-android-simulator

Android 真机运行

Expo 官方是提供一个名为 EAS (Expo Application Services) 的托管构建服务,可以直接构建好 apk 和 ipa(需要 99 刀开发者账号)。不过 Android 没有那么讲究,可以直接用用 EAS 的免费额度。

bash
1# 安装 EAS 命令行工具 2pnpm add -g eas-cli 3# 登录 Expo 账号 4eas login

登录 Expo 账号,

bash
1eas build:configure

会问 Which platforms would you like to configure for EAS Build? 选择 Android. 这一步会生成 eas.json.

bash
1eas build -p android --profile preview --clear-cache

按提示填一些签名之类的东西。本地 cli 有概率一直卡住(如果网络不太稳),这个时候打开自己的 expo.dev 后台,找到这次构建任务,就能找到构建成功的 apk 下载链接。下载好后传到手机上安装。

rn-android-real

iOS 端

iOS 模拟器运行

去 App Store 下载比较新的 Xcode 版本。(为此我还被迫先升级了一下 macOS 版本。。。应该到 Sequoia 的最新小版本了,我是真的有点抵触 macOS 26 Tahoe 的液态玻璃。。。)

Xcode 里面会有 iOS Simulator,需要提前下载模拟镜像,我姑且下载一个 iOS 26.

download-ios-26-simulator

package.json 里应该默认有:

json
1"ios": "expo run:ios"

所以运行:

bash
1pnpm ios

macOS 会自动打开 iOS Simulator,第一次打开需要等待 Expo Go 自动安装完成,同样应该不会下载太久,有进度条能看着它动。完成后:

rn-ios-simulator

iOS 真机运行

首先,由于我没有 99 美元的 Apple 开发者账号,所以不能用 Expo 提供的托管服务来构建。只能本地用 Xcode 构建好,连接数据线以开发者模式安装在自己的 iPhone 上。

首先需要在 Expo 侧预编译、把 JavaScript 代码打包好,

自行在 package.json 里添加两个 script:

json
1"prebuild": "expo prebuild", 2"export": "expo export",

运行:

bash
1pnpm prebuild 2pnpm export

prebuild 会生成 iosandroid 目录,里面是原生项目代码,可以用 Xcode 和 Android Studio 打开。export 会把 JavaScript 代码打包好,供原生项目使用。

这个时候我们需要安装相关的 iOS 开发的原生依赖项。

bash
1brew install cocoapods

然后进入 ios 目录,运行:

bash
1pod install

安装过程似乎会从 GitHub 拉取资源,所以网络情况还需要注意一下。顺利完成后,ios 目录下会出现 app.xcworkspace,这个就是我们要用 Xcode 打开的东西了。用访达进入 ios 目录,双击打开 app.xcworkspace

现在我们来到 Xcode 了!

设置自己的开发者身份信息。在 TARGETS → app → Signing & Capabilities 里选择自己的 Apple ID 账号,把 Team 换成自己的 Apple ID (Personal Team). 这一步不设置的话后续无法 build. Bundle Identifier 需要一个类似于 com.yourname.appname 的唯一标识符,会自动使用 React Native 项目的。

连接好 iPhone,选择真机作为运行目标,第一次连接需要手机开启开发者模式,按提示进行各种信任。具体流程记不太清了,但是系统提示很清晰,没有额外求助搜索引擎或人工智能。部分提示只有英语。

在导航栏的 app ▸ iPhone 点击 app,Edit Scheme,把 Debug 改成 Release。这一步如果不做,似乎不会把 JS Bundle 打包进 app 里。

release-app

然后就到了见证奇迹的时刻,点击左上角的运行按钮,Xcode 会开始编译打包安装到真机上。这个过程会比较久,耐心等待。

rn-ios-real