跳到主要内容

设备上运行

在发布应用给用户之前,最好先在真机上测试一下。本文档将指导您完成在设备上运行 React Native 应用并使其为生产环境做好准备的必要步骤。

信息

如果您使用 create-expo-app 来设置项目,您可以通过扫描运行 npm start 时显示的二维码,在 Expo Go 中在设备上运行您的应用。有关更多信息,请参阅 Expo 指南,了解在设备上运行您的项目

在 Android 设备上运行您的应用

开发操作系统

1. 启用 USB 调试

默认情况下,大多数 Android 设备只能安装和运行从 Google Play 下载的应用。您需要在设备上启用 USB 调试,以便在开发期间安装您的应用。

要在设备上启用 USB 调试,您首先需要通过转到 设置关于手机软件信息,然后点击底部的 Build number 行七次来启用“开发者选项”菜单。然后您可以返回到 设置开发者选项 以启用“USB 调试”。

2. 通过 USB 插入设备

现在让我们设置一个 Android 设备来运行我们的 React Native 项目。继续通过 USB 将您的设备插入到您的开发机器。

接下来,通过使用 lsusb 检查制造商代码(在 mac 上,您必须首先安装 lsusb)。lsusb 应该输出类似这样的内容

bash
$ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 22b8:2e76 Motorola PCS
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

这些行表示当前连接到您机器的 USB 设备。

您需要表示您的手机的行。如果您有疑问,请尝试拔下手机并再次运行命令

bash
$ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

您将看到在移除手机后,包含手机型号的行(在本例中为“Motorola PCS”)从列表中消失了。这是我们关心的行。

Bus 001 Device 003: ID 22b8:2e76 Motorola PCS

从上面的行中,您需要抓取设备 ID 的前四位数字

22b8:2e76

在本例中,它是 22b8。这是 Motorola 的标识符。

您需要在您的 udev 规则中输入此内容才能启动并运行

shell
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev"' | sudo tee /etc/udev/rules.d/51-android-usb.rules

确保将 22b8 替换为您在上述命令中获得的标识符。

现在通过运行 adb devices 检查您的设备是否正确连接到 ADB,Android 调试桥。

shell
$ adb devices
List of devices attached
emulator-5554 offline # Google emulator
14ed2fcc device # Physical device

在右列看到 device 表示设备已连接。您一次必须只连接一个设备

3. 运行您的应用

在您的项目根目录中,在命令提示符中键入以下内容,以在设备上安装和启动您的应用

shell
npm run android

如果您收到“桥接配置不可用”错误,请参阅使用 adb reverse

提示:您还可以使用 React Native CLI 来生成和运行 release 版本(例如,从您的项目根目录:yarn android --mode release)。

连接到开发服务器

您还可以通过连接到在您的开发机器上运行的开发服务器来在设备上快速迭代。有几种方法可以实现这一点,具体取决于您是否有权访问 USB 电缆或 Wi-Fi 网络。

如果您的设备运行的是 Android 5.0 (Lollipop) 或更高版本,并且启用了 USB 调试,并且通过 USB 连接到您的开发机器,则可以使用此方法。

在命令提示符中运行以下命令

shell
$ adb -s <device name> reverse tcp:8081 tcp:8081

要查找设备名称,请运行以下 adb 命令

shell
$ adb devices

您现在可以从开发菜单启用快速刷新。您的应用将在您的 JavaScript 代码更改时重新加载。

方法 2:通过 Wi-Fi 连接

您也可以通过 Wi-Fi 连接到开发服务器。您首先需要使用 USB 电缆在您的设备上安装应用,但是一旦完成,您可以通过按照以下说明无线调试。在继续之前,您需要您的开发机器的当前 IP 地址。

打开终端并键入 /sbin/ifconfig 以查找您机器的 IP 地址。

  1. 确保您的笔记本电脑和手机在同一 Wi-Fi 网络上。
  2. 在您的设备上打开您的 React Native 应用。
  3. 您将看到一个带有错误的红色屏幕。这没关系。以下步骤将修复它。
  4. 打开应用内开发菜单
  5. 转到 Dev SettingsDebug server host & port for device
  6. 输入您机器的 IP 地址和本地开发服务器的端口(例如 10.0.1.1:8081)。
  7. 返回到 开发菜单 并选择 Reload JS

您现在可以从开发菜单启用快速刷新。您的应用将在您的 JavaScript 代码更改时重新加载。

构建您的应用以进行生产

您已经使用 React Native 构建了一个很棒的应用,现在您渴望在 Play 商店中发布它。该过程与任何其他原生 Android 应用相同,但需要考虑一些额外的注意事项。按照生成签名 APK的指南了解更多信息。