Skip to content

Commit 824afae

Browse files
committed
doc(Android): Android 真机环境安装(for Mac)文档
1 parent dfc0213 commit 824afae

File tree

5 files changed

+114
-9
lines changed

5 files changed

+114
-9
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
Android 真机环境安装(for Mac)
2+
===
3+
4+
本文档将指导你通过必须的步骤在设备上运行 React Native app,为生产做准备 。
5+
6+
## 在 Android 设备上运行应用
7+
8+
> 🚧 下文所指的设备包括 Android 手机和模拟器。
9+
<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->
10+
11+
### `1. 开启 USB 调试`
12+
13+
在默认情况下 Android 设备只能从应用市场来安装应用。你需要开启 USB 调试才能自由安装开发版本的 APP
14+
15+
首先,确定你已经打开设备的 USB 调试开关。
16+
17+
### `2. 通过 USB 数据线连接设备`
18+
19+
现在我们设置一个 Android 设备来运行我们的 React Native 项目,通过 USB 将你的设备插入开发机器以继续
20+
21+
下面检查你的设备是否能正确连接到 ADB(Android Debug Bridge),使用`adb devices`命令:
22+
23+
```
24+
$ adb devices
25+
List of devices attached
26+
emulator-5554 offline # Google emulator
27+
14ed2fcc device # Physical device
28+
```
29+
30+
在右边那列看到`device`说明你的设备已经被正确连接了。注意,你每次只应当`连接一个设备`<!--rehype:style=color: red;background: #ffd2d2;-->
31+
32+
> 🚧 译注:如果你连接了多个设备(包含模拟器在内),后续的一些操作可能会失败。拔掉不需要的设备,或者关掉模拟器,确保 adb devices 的输出只有一个是连接状态。
33+
<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->
34+
35+
### `3. 运行应用`
36+
37+
现在你可以运行下面的命令来在设备上安装并启动应用了。
38+
39+
```
40+
$ npx react-native run-android
41+
```
42+
43+
> 🚧 如果你收到"bridge configuration isn't available"错误,请参阅使用adb reverse。
44+
<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->
45+
46+
> 🚧 提示:你还可以运行npx react-native run-android --variant=release来安装 release 版的应用。当然你需要[先配置好签名](https://reactnative.cn/docs/signed-apk-android),且此时无法再开启开发者菜单。注意在 debug 和 release 版本间来回切换安装时可能会报错签名不匹配,此时需要先卸载前一个版本再尝试安装。
47+
<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->
48+
49+
## 从设备上访问开发服务器
50+
51+
在启用开发服务器(官方名称 metro,但我们更常称之为 Packager)的情况下,你可以快速的迭代修改应用,然后在设备上立即查看结果。按照下面描述的任意一种方法来使你的设备可以访问到运行在电脑上的开发服务器。
52+
53+
> 🚧 译注:默认情况下模拟器可以自动探测宿主机 ip 并连接,只有 Android 5.0 以下版本的手机需要按下文说明来手动操作。但某些情形下可能也无法正常连接,请注意去[讨论区](https://github.com/reactnativecn/react-native-website/issues)查看是否有人遭遇同类型的问题(不同时期不同版本可能是不同的问题)。有些文章会提到`react-native bundle`命令,这个命令会把 js 文件打包内置到应用中,从而不需要连接 metro,但这并`没有解决问题`。我们在开发中必须使用到 metro,否则无法刷新代码
54+
<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->
55+
56+
### `(Android 5.0 及以上)使用 adb reverse 命令`
57+
58+
> 🚧 注意,这个选项只能在 5.0 以上版本(API 21+)的安卓设备上使用。。
59+
<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->
60+
61+
首先把你的设备通过 USB 数据线连接到电脑上,并开启 USB 调试(关于如何开启 USB 调试,参见上面的章节)。
62+
63+
1. 运行`adb reverse tcp:8081 tcp:8081`
64+
2. 不需要更多配置,你就可以使用`Reload JS`和其它的开发选项了
65+
66+
### `(Android 5.0 以下)通过 Wi-Fi 连接你的本地开发服务器`
67+
68+
你还可以通过 Wi-Fi 连接到开发服务器。你首先需要使用 USB 在你的设备上安装该应用程序,完成之后便可以按照这些说明进行无线调试。在继续之前,你需要知道开发机器的当前 IP 地址。
69+
70+
你可以在`System Preferences``Network`中找到 IP 地址。
71+
72+
1. 首先确保你的电脑和手机设备在`同一个 Wi-Fi 环境`<!--rehype:style=color: red;background: #ffd2d2;-->下。
73+
2. 在设备上运行你的 React Native 应用。和打开其它 App 一样操作。
74+
3. 你应该会看到一个“红屏”错误提示。这是正常的,下面的步骤会解决这个报错。
75+
4. 摇晃设备,或者运行`adb shell input keyevent 82`,可以打开`开发者菜单`<!--rehype:style=color: red;background: #ffd2d2;-->
76+
5. 点击`Dev Settings` -> `Debug server host for device`
77+
6. 输入你电脑的 IP 地址和端口号(譬如 10.0.1.1:8081)。`在 Mac 上`<!--rehype:style=color: red;background: #ffd2d2;-->,你可以在系统设置/网络里找查询你的 IP 地址。`在 Windows 上`<!--rehype:style=color: red;background: #ffd2d2;-->,打开命令提示符并输入`ipconfig`来查询你的 IP 地址。`在 Linux 上`<!--rehype:style=color: red;background: #ffd2d2;-->你可以在终端中输入`ifconfig`来查询你的 IP 地址。
78+
7. 回到`开发者菜单`<!--rehype:style=color: red;background: #ffd2d2;-->然后选择`Reload JS`
79+
80+
你现在可以从[开发者菜单](https://reactnative.cn/docs/debugging#accessing-the-in-app-developer-menu)启用实时重新加载。只要你的 JavaScript 代码发生更改,应用就会重新加载。
81+
82+
## 恭喜
83+
恭喜! 你已经使用 React Native 构建了一个很棒的应用程序。
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import Preview from 'src/component/Preview';
2+
import md from './README.md';
3+
4+
const transformImageUri = (url: string) => {
5+
const reqImage = (require as any).context!('./', true, /\.(png|gif|jpg|svg)$/);
6+
const urlAddr = reqImage(url);
7+
return urlAddr;
8+
};
9+
10+
const DEMO = () => (
11+
<Preview
12+
{...md}
13+
transformImageUri={transformImageUri}
14+
path="website/src/pages/docs/environment-setup/android-phone/README.md"
15+
/>
16+
);
17+
export default DEMO;

website/src/pages/docs/environment-setup/ios-phone/README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
iOS 真机环境安装
22
===
33

4-
在真机上仔细测试 app 后再发布给用户总是不会错的。本文档将指导你通过必须的步骤在设备上运行 React Native app,为生产做准备
4+
本文档将指导你通过必须的步骤在设备上运行 React Native app,为生产做准备
55

66

77
## 在 iOS 设备上运行应用
88

9-
### 1. 通过 USB 数据线连接设备
9+
### `1. 通过 USB 数据线连接设备`
1010

1111
使用 USB 闪电数据线连接 iOS 设备到 Mac。导航到工程的ios文件夹,然后用 Xcode 打开.xcworkspace文件,如果是 0.60 以前的版本则打开.xcodeproj文件。
1212

1313
如果这是第一次在 iOS 设备上运行 app,需要注册开发设备。从 Xcode 菜单栏打开Product菜单,然后前往Destination。从列表中查找并选择设备。Xcode 将注册为开发设备。
1414

15-
### 2. 配置代码签名
15+
### `2. 配置代码签名`
1616

1717
如果没有[Apple developer account](https://developer.apple.com/),先注册。
1818

1919
在 Xcode Project 导航中选择 project,然后选择 main target(它应该和 project 共享同样的名字)。查找"General"标签。前往"Signing"并确保在"Team"下拉下选择了开发者账号或团队。tests target(以 Tests 结尾,在 main target 下面)也需要重复同样的操作。
2020

2121
![Xcode Project](./001.png)<!--rehype:style=max-width: 480px;-->
2222

23-
### 3. 编译并运行应用
23+
### `3. 编译并运行应用`
2424

2525
如果一切设置正确,设备会在 Xcode toolbar 中被列为 build target,也会出现在设备面板里(⇧⌘2)。现在可以按下 Build and run 按钮(⌘R)或从Product菜单中选择Run。app 会立刻启动在设备上。
2626

@@ -35,7 +35,7 @@ iOS 真机环境安装
3535

3636
![Developer menu](./003.png)<!--rehype:style=max-width: 480px;-->
3737

38-
### 常见问题
38+
## 常见问题
3939

4040
> 🚧 注意:如果您有任何问题,请确保您的Mac和设备位于同一网络上,并且可以相互连接。许多具有捕获入口的开放式无线网络被配置为防止设备到达网络上的其他设备。在这种情况下,您可以使用设备的个人热点功能。
4141
<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->
@@ -47,11 +47,11 @@ iOS 真机环境安装
4747
4848
解决这个问题检查以下几点。
4949

50-
### 1. Wi-Fi 网络
50+
### `1. Wi-Fi 网络`
5151

52-
确保笔记本电脑和电话在`同一个`Wi-Fi 网络
52+
确保笔记本电脑和电话在`同一个`<!--rehype:style=color: red;background: #ffd2d2;-->Wi-Fi 网络
5353

54-
### 2. IP 地址
54+
### `2. IP 地址`
5555

5656
确保编译脚本正确检测到机器的 IP 地址(e.g. 10.0.1.123)。
5757

website/src/routes/menus.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ export const docsMenus: MenuData[] = [
8484
{ path: '/docs/environment-setup/android', name: 'Android(Mac) 环境安装' },
8585
{ path: '/docs/environment-setup/android-windows', name: 'Android(Windows) 环境安装' },
8686
{ path: '/docs/environment-setup/ios-phone', name: 'iOS 真机环境安装' },
87-
87+
{ path: '/docs/environment-setup/android-phone', name: 'Android(Mac) 真机环境安装' },
88+
// { path: '/docs/environment-setup/android-windows-phone', name: 'Android(Windows) 真机环境安装' },
8889
{ divider: true, name: 'APP 打包' },
8990
{ path: '/docs/unpack/ios', name: 'iOS 打包' },
9091
{ path: '/docs/unpack/android', name: 'Android(Mac) 打包' },

website/src/routes/router.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ export const routeData = [
3737
path: '/docs/environment-setup/ios-phone',
3838
component: lazy(() => import('../pages/docs/environment-setup/ios-phone')),
3939
},
40+
{
41+
path: '/docs/environment-setup/android-phone',
42+
component: lazy(() => import('../pages/docs/environment-setup/android-phone')),
43+
},
4044
{
4145
path: '/docs/app-store/ios',
4246
component: lazy(() => import('../pages/docs/app-store/ios')),

0 commit comments

Comments
 (0)