使用Expo+EAS Build发布RN应用到App Store时遇套接字文件复制错误
解决EAS Build iOS时的Socket文件复制错误
这个错误是因为构建过程中试图复制Xcode的GPU工具代理socket文件——这类动态生成的套接字没法被常规复制操作处理,下面是几个可行的解决办法:
- 彻底关闭Xcode及相关进程:把本地的Xcode、模拟器,还有所有Xcode后台进程(比如GPU Tools Agent)都关掉,再重新运行
eas build --platform ios。进程运行时套接字文件会被占用,关闭后文件会自动清理,就不会触发复制报错了。 - 手动清理socket文件:直接删除那个报错的socket文件,执行命令:
rm -rf /Users/tienminhnguyen/Library/Developer/Xcode/GPUToolsAgent.sock - 在EAS配置里忽略socket文件:修改项目根目录的
eas.json,在iOS构建的profile里添加忽略规则,跳过所有.sock文件的复制:"build": { "production": { "ios": { "ignore": [ "**/*.sock" ] } } } - 更新依赖和CLI版本:把EAS CLI更到最新,执行
npm install -g eas-cli;同时运行npx expo update升级项目里的Expo相关依赖,避免版本不兼容导致的文件处理bug。
另外,你的应用在Expo Go里正常运行,说明业务代码没问题,重点看构建环境的文件处理逻辑。如果上面的方法都不管用,可以试试本地构建:eas build --platform ios --local,看看会不会出现同样错误,方便进一步排查。
内容的提问来源于stack exchange,提问作者Minh Dr
相关产品推荐
相关产品推荐

