React Native DApp 开发全栈实战·从 0 到 1 系列(eas构建自定义客户端)

前言

Expo Go 只能调用官方 SDK;若想在 React Native DApp 里集成任意第三方原生库,就必须「自定义客户端」。下文以 Windows → Android 为例,演示「全程代理」构建的完整流程。

一、前置准备

  1. 需要有提前注册一个expo 账号
  2. 本地已搭好 HTTP/SOCKS5 代理(端口示例:7890),关于梯子相关的这里就不赘述。

二、构建前准备工作(本地预检,强烈建议)

说明本身代理就慢,在构建之前本地跑一遍,处理冲突等一些问题,直到全绿为止

csharp 复制代码
# 查看是否冲突 第一次检测
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仪表盘上查看项目

csharp 复制代码
# 登录
eas login //输入账号、密码
# EAS 配置
eas init

2. 一次性代理指令(详细步骤)

ini 复制代码
# 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.devInvoke-WebRequest -Uri https://expo.dev -Method Head

3. eas.json配置 添加代理

go 复制代码
  {
    "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 配代理

ruby 复制代码
# 先清空旧代理
 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 即可

5. 重新登录

bash 复制代码
eas logout   # 清掉旧会话
eas login    # 现在会走 7890

6. 再次构建

css 复制代码
# 构建 android 开发版
eas build --platform android --profile development

四、关于自定义客户端调试问题

  • 真机安装:构建的包通过expo仪表盘下载到手机上,然后安装
  • 调试启动 Metro 服务器npx expo start --dev-client

总结

以上即为通过代理构建自定义客户端的完整流程,涵盖常见问题及解决方案。亲测有效,但耗时较长,建议预留充足时间。

相关推荐
私人珍藏库7 小时前
[Android] zip解压缩管理-全格式压缩包一键解压+打包
android·app·生活·工具·多功能
mykj155111 小时前
RWA与Web3双向融合:开启资产数字化新时代
web3·区块链
mykj155114 小时前
RWA与Web3区块链:一场“实体”与“数字”的双向奔赴
web3·区块链
光影少年2 天前
react navite 跨端核心原理
前端·react native·react.js
Rockbean2 天前
10分钟Solana-性能web3-2.4 Rust 编程基础三:结构体、枚举、错误处理与集合
rust·web3·智能合约
Fansi4 天前
iOS 实时活动(Live Activity)开发指南
app
duanze4 天前
从零开始Android商业项目Vibe coding完全指南(八)
app·vibecoding
老王以为6 天前
React Renderer 分离的多平台架构
前端·react native·react.js
Bigger9 天前
Tauri (26)——托盘图标总对不上系统主题?一行 Template Image 搞定
前端·rust·app
Rockbean12 天前
10分钟智能合约:进阶实战-7.2 Foundry开发环境
web3·智能合约·solidity