前言
下面是Expo如何在本地进行打包的过程(windows)
eas打包
如果使用云打包,花费时间较多,时间不固定,我自己差不多10分钟,但是很简单,问题较少
步骤
// 1.登录
eas login
// 2.eas打包
eas build -p android
// 3.然后就是漫长的等待
终端显示 Build in progress
完成后我们发现,第一次生成的是AAB文件
什么是AAB
.aab 文件(Android App Bundle)是 Google 推出的新格式,用于替代传统的 .apk 文件进行应用发布。.aab 文件并不能直接安装到 Android 设备上。它主要用于上传到 Google Play 商店,由 Google Play 根据设备需求生成和分发 .apk 文件。
转换为apk文件
方法1、可以使用这个命令直接生成apk文件,然后会有一个二维码,手机扫一下就可以直接安装,或者使用adb打开链接
// 1.打包
eas build -p android --profile preview
// 2.使用adb打开链接
adb shell am start -a android.intent.action.VIEW -d + 你的链接
方法2.修改eas.json文件
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {
"android": {
"buildType": "apk"
}
}
},
然后使用命令
eas build -p android --profile production
此时会直接生成apk文件,可以下载到电脑
然后使用adb安装到Android
adb install + 你的apk路径
本地打包
以Windows为例
先安装docker,然后手动创建下面的三个文件
1.Dockerfile
FROM mobiledevops/android-sdk-image:latest
# 更新系统并安装 Node.js
RUN apt update && \
apt install -y nodejs npm
# 安装 eas-cli 和 expo
RUN npm install -g eas-cli expo
COPY ./ /WWW/APP
WORKDIR /WWW/APP
ENV EXPO_TOKEN= ... // 这里换为你的token,如果没有去expo官网创建一个
ENV NODE_ENV=production
RUN pnpm install
CMD ["eas", "build", "--platform", "android", "--profile", "release", "--local"]
2.docker-compose.yaml
version: "3"
name: build
services:
build:
build:
context: .
dockerfile: Dockerfile
image: build
container_name: rnApp
tty: true
stdin_open: true
volumes:
- ./:/WWW/APP/
3.eas.json
{
"cli": {
"version": ">= 10.2.3"
},
"build": {
"production": {
"android": {
"buildType": "apk",
"output": "/WWW/APP"
}
}
},
"submit": {
"production": {}
}
}
构建
docker-compose up -d
这个过程需要花费几分钟,内心等待一下,如果中途也没有报错,则构建成功,可以运行打包的文件看看是否可以正常运行。