前言ExpoGo只能调用官方SDK;若想在ReactNativeDApp里集成任意第三方原生库,就必须「自定义客户端」。下文以Windows→Android为例,演示「全程代理」构建的完整流程。一、前置准备需要有提前注册一个expo账号;本地已搭好HTTP/S
Expo Go 只能调用官方 SDK;若想在 React Native DApp 里集成任意第三方原生库,就必须「自定义客户端」。下文以 Windows → Android 为例,演示「全程代理」构建的完整流程。
一、前置准备
- 需要有提前注册一个expo 账号;
- 本地已搭好 HTTP/SOCKS5 代理(端口示例:7890),关于梯子相关的这里就不赘述。
二、构建前准备工作(本地预检,强烈建议)
说明:
本身代理就慢,在构建之前本地跑一遍,处理冲突等一些问题,直到全绿为止
# 查看是否冲突 第一次检测 npx expo-doctor@latest # 任何 **红色 ✖**(依赖冲突 / peer deps 不兼容)→ 一律按提示修复 npx expo install --check # 如果有冲突 npx expo install --fix//自动对齐版本 # 解决之后 重新运行 npx expo-doctor@latest --verbose;//修复后,再跑一次,应该是全绿
三、代理构建自定义客户端(
以window系统,构建android自定义客户端
)
1. 初始化 EAS 配置
生成项目id 可以在expo仪表盘上查看项目
# 登录 eas login //输入账号、密码 # EAS 配置 eas init
2. 一次性代理指令(详细步骤)
# cmd终端 set http_proxy=http://127.0.0.1:xxxx(例如:7890) set https_proxy=http://127.0.0.1:xxxx(例如:7890) # or # powershell终端 $Env:HTTP_PROXY = "http://127.0.0.1:xxxx(例如:7890)" $Env:HTTPS_PROXY = "http://127.0.0.1:xxxx(例如:7890)" # 关于端口号说明:端口取自vpn的端口号 # 测试代理 curl -I https://expo.dev or Invoke-WebRequest -Uri https://expo.dev -Method Head//查看StatusCode 200 # 登录账号 eas login//输入账号和密码 # 构建 开发版的自定义客户端 eas build --platform android --profile development
指令汇总
终端 命令 CMD set http_proxy=http://127.0.0.1:7890
PowerShell $Env:HTTP_PROXY = "http://127.0.0.1:7890"
网络测试 curl -I https://expo.dev
或Invoke-WebRequest -Uri https://expo.dev -Method Head
3. eas.json配置 添加代理
{ "cli": { "version": ">= 16.17.4", "appVersionSource": "remote" }, "build": { "development": { "developmentClient": true, "distribution": "internal", "android": { "buildType": "apk" }, "env": { "HTTP_PROXY": "http://192.168.1.xxx:aaa",// xxx:通过ipconfig查看 aaa:vpn的代理的端口 "HTTPS_PROXY": "http://192.168.1.100:7890"// // 不使用代理 // "NO_PROXY": "localhost,127.0.0.1,.local,.internal" } }, "preview": { "distribution": "internal" }, "production": { "autoIncrement": true } }, "submit": { "production": {} } }
4. 在 Windows 终端里重新给 EAS CLI 配代理
# 先清空旧代理 Remove-Item Env:HTTP_PROXY -ErrorAction SilentlyContinue Remove-Item Env:HTTPS_PROXY -ErrorAction SilentlyContinue
# 再写入正确的端口(假设是 7890)
$Env:HTTP_PROXY = "http://127.0.0.1:7890"
$Env:HTTPS_PROXY = "http://127.0.0.1:7890"
# 测试网络
irm -Method Head -Uri https://expo.dev | Select-Object StatusCode
# 返回 200 即可
```
eas logout # 清掉旧会话
eas login # 现在会走 7890
# 构建 android 开发版
eas build --platform android --profile development
npx expo start --dev-client
以上即为通过代理构建自定义客户端的完整流程,涵盖常见问题及解决方案。亲测有效,但耗时较长,建议预留充足时间。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!