创建项目和写代码就不说了,主要说一下大部分视频教程未提及的打包部分
主流都是在推荐 eas 云打包,不仅排队时间长,还总是排了老长的队又很容易出错,有时甚至是云打包所用的机器网络差点意思导致依赖安装失败了。就断掉整个打包流程。然后你就需要重新排队打包。不出意外又要排队两个小时。有点离谱。
eas 也支持--local 参数进行本地打包,但是本地打包还要登录 eas 账号,没一点代码安全感。很离谱。
不仅没安全感,就算你登上了,也会提示你 windows 不支持。离离原上谱。
如果使用 windows subsystem for linux 又会大概率牵扯出不会正确使用 WSL 的各种疑惑。而且 expo 文档上也不会告诉你怎么通过 wsl 打包,因为 expo 团队就没想着兼容 windows 平台,也不会给你测试 wsl 能不能正常用于打包。
有没有安全且方便的 windows 系统的打包 expo 项目的 apk 的方式呢,有的兄弟有的
打开 exe 文件,跟着安装向导下一步下一步...
打开安装好的 Android Studio ,
点击不给谷歌发送使用数据,
提示需要下载 SDK 和安卓模拟器,下一步到 License 界面,会展示 android-sdk 的许可内容,点下面接受的单选按钮
点击左侧 android-sdk-preview-license 查看第二个许可内容,再点下面的接受单选按钮
SDK 和安卓模拟器的下载需要消耗 50 分钟(我的网速是 1.7MB/s)
时间宝贵,你可以先干点别的。
下载好了就重启一次电脑
感觉内存不够用的可以打开虚拟内存(推荐勾选“自动管理所有驱动器的分页文件大小”)。
使用 npm ci 强制使用 package-lock.json 的依赖清单安装依赖
使用 npx expo prebuild 构建出 android 工程目录
打开之后自动执行更新索引和下载项目的依赖包,这一步耗时70 分钟(我用的 4 核 CPU ,网速是 1.7MB/s)
再次提醒,时间宝贵,你可以先干点别的。
点击左上角三个横线,鼠标放到 Build ,再放到二级菜单的 Generate App Bundles or APKs,点击 Generate APKs
这一步同样耗时巨大,需要60 分钟
点击左上角三个横线,鼠标放到 Build ,点击 Generate Signed App Bundle or APK
选择 APK 单选框,下一步要求你使用签名,有的话就选创建好的,没有的话就创建新的
再下一步,在 debug 和 release 之间选择 release ,点蓝色的 create 按钮。大部分依赖都在制作调试基座时缓存过了,所以这次打包大概五分钟后就生成好了
找个存放秘密的好地方,新建文本文件,并改名成后缀为 jks 的文件如 xxx 的签名.jks
在 Android Studio 里面点 create new..., 第一个输入框是填你刚刚创建的 jks 文件路径,可以点击输入框右侧的文件夹图标选取你的 jks 文件。
Validity Years 是签名有效时长多少年,如果过了这个时间需要重新制作签名。因签名文件变化也会导致老版本无法升级成新版本。只能卸载重装为新版。
剩下的输入框如果没什么特别的安全性要求,无脑都写一样的就能用。如果有应用安全的要求就好好写。
引入新的原生模块时需要重新制作调试基座,因为旧的调试基座不包含这部分新的原生代码。
要用的系统权限需要在 app.json 里面提前列出来,并打入调试基座,否则代码里直接请求获取权限会得到 never ask again(拒绝且不再询问)
![]() |
1
xbdsky 13 小时 22 分钟前
下载慢,可以加代理试试,C 盘确实占用很多
|
2
zhengfan2016 11 小时 34 分钟前 ![]() 25GB 不算多吧,手机下个原神,鳴潮都得 30GB 了,原神电脑版,三角洲这些 90GB+,xbox 极限竞速地平线,2077 至少也得 70GB ,有些像星空的大作上百 GB 都有,除了 256GB 的 mac 用户,25GB 真不算什么
|
![]() |
3
HojiOShi 10 小时 47 分钟前 ![]() * 除了第三点,这不就正常的打包 Android 项目的流程,至于弄几天时间?
* C 盘占用就是 Gradle 缓存大而已,GRADLE_USER_HOME 环境变量设置一下,再把.gradle 目录转移掉也就差不多了。 |
![]() |
4
HMYang33 OP @zhengfan2016 公司配的电脑,磁盘只有 256GB ,空间很紧张的。。。
|
![]() |
5
HMYang33 OP @HojiOShi 首先感谢你的方案,解决了 gradle 缓存占太多 C 盘空间。
再回复第一条,因为我是新手,在接触 react-native 的时候遇到了很多对新人来说很棘手的事,而且我只是下班时摆弄两个小时,说是折腾了几天一点也不为过 |
6
zhengfan2016 7 小时 51 分钟前
@HMYang33 #4 看看能不能和公司申请换大点的电脑咯,而且电脑空间小这不是好事吗,每次打包 android 都得经历清理磁盘,下载 android studio ,下载 sdk ,安装依赖,打包,这可是好几个小时的摸鱼时间呢,我同学经常借公司电脑卡 java 编译很久的借口摸鱼
![]() |
![]() |
7
mouyase 7 小时 0 分钟前
但依旧不能编译 iOS 版
|
![]() |
8
zhangleijuly 6 小时 52 分钟前
Expo 项目本地编译 apk 我几个月之前刚研究过怎么搞,本地安装 android 开发环境之后,npx expo prebuild 生成 android 目录,到 android 目录下运行./gradlew assembleRelease 或者./gradlew assembleDebug 指令即可。但是国内生成速度非常慢,因为有些包根本下载不动,所以需要换源,我是把 gradle 换成了腾讯源,maven 换成了阿里源,从零生成大概需要十几分钟。
|
![]() |
9
donaldturinglee 6 小时 43 分钟前
打包我选择直接在 GitHub actions 打包..
|
10
Rache1 5 小时 38 分钟前
下载慢的时候,配置代理的时候注意一下,dl.google.com 这个域名不要走走代理,让他直连,这个域名是没有被墙的,而且还很快走了代理反倒会变慢。
|
![]() |
11
XTTX 3 小时 11 分钟前
我用了一个月 expo , 得出的结论就是千万别用在 windows 下用 expo 。
1.时不时就扔你一个 PathTooLongException 。 2.不能编译 ios 3.不能编译 ios 4.不能编译 ios 我买了个 m2 mac mini ,android/ios ,preview/production 都在本地打包。mac 下只要跑通两个端的流程一遍,剩下的整个流程越来越简单。 |