使用expo打包react native项目时候报错Failed to upload the project tarball to EAS Build
使用命令 as build --platform android --profile preview 请求云端构建react native项目,打包android APK,报错:
Failed to upload the project tarball to EAS Build
Reason: request to https://storage.googleapis.com/turtle-v2-projects/production/40b567e7-cf83-4d5e-bb61-02cec66774ec/6b52a36a-4754-4538-946e-7b2aa8019af6?X-Goog-Algorithm=GOOG4-RSiceaccount.com%2F20251105%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20251105T004836Z&X-Goog-Expires=3600&X-Goog-SignedHeaders=host%3Bx-goog-content-length-range&X-Goog-Signature=67833b60dbf58152fce6d66bf2c22a1d9fb63645f474e99d6d6118e657d1754bfbd06cfa9991546eacaba2254e3bfe1af4f9536c2cd8a5543c5235a92602f586bc9102e34e499ff9aec810c777eb911a766fbf30462ac736dd278cd9d1b7064329fc8d44b09bf4c6db632d71c8a5ef0534056aece5f17f053f6b21786c8076a29487d02a4a14c9cf6377a102a5c7b76cbfeea75fe48b8b8bdbca18fa1fcfb2c80edcf6a08d8b9141bd206b9f7e989aa2e7dda37641258b26cc7bc298c4a52f8f12096dd3f95d309036e10a729ad failed, reason: read ECONNRESET

打开错误信息中的网页链接,错误如下:

直接原因就是:你告诉我你的请求有一个请求头A,但我接受到的请求缺少了A。
“你”就是构建发起方,“我”就是EAS Build服务方。
这个请求头为什么会缺失呢?具体原因无法确定,大概率是因为国内使用了科学上网,导致请求头被修改。
此时有两种解决办法:
第一种方法,本地构建,但需要下载android studio搭建本地开发环境,我试了一下,一直没成功,会出现各种错误,但是应该都是可以解决的 ,刚开始需要时间;
第二种方法,把代码上传到github,利用github的action远程云构建,在国内需要魔法,才导致请求头被改,如果我们把代码上传带github,然后从github发起云构建请求,相当于我们在国内操作一台国外的电脑,在国外的电脑上放弃云构建请求,这个请求直接发送到EAS build服务器,请求头就不会被修改了。
我用第二种方法成功打包了APK。

还有一种可能的方法,我猜想也可能和我用的魔法有关系,换个魔法或许就可以了。
