EAS Build报错误码1失败 需移除com.segment.analytics.android:analytics包
问题说明
- 使用
expo build:android打包的应用上传至Google Play Console时收到政策违规通知,当前版本无法发布:应用内集成的Segment Analytics Android(com.segment.analytics.android:analytics)4.9.4版本违规收集Advertising ID、Android ID等个人敏感数据,违反User Data policy要求。 - Google Play给出的合规修复要求:
- 修复路径可三选一:更换其他统计SDK、移除该违规SDK,或升级至SDK官方推出的合规版本4.10.1
- 审核要求:上传符合政策的新版本,同时停用已上传的不合规版本
- 初步排查结果:先后在
app.json配置文件、node_modules依赖目录中检索该包均未找到,确认该SDK为其他依赖隐性引入的传递依赖。 - 已尝试操作:了解到EAS Build具备自动移除未使用依赖包的能力,可清理该隐性引入的违规包,但执行EAS Build构建时返回非零错误码
error code 1构建失败;普通expo build流程可正常构建成功,暂无法定位EAS Build失败原因,无法完成违规依赖清理和合规包打包。
可落地解决步骤
1. 优先定位并处理违规传递依赖
不需要先切换EAS Build,先通过依赖检索命令找到引入低版本Segment SDK的来源:
# npm项目执行 npm ls @segment/analytics-react-native # yarn项目执行 yarn why com.segment.analytics.android:analytics
找到来源后,直接在项目根目录的app.json中显式配置,覆盖或排除违规依赖,不需要改动node_modules内的文件:
- 若仍需要使用Segment相关能力,直接强制指定合规版本覆盖传递依赖:
{ "expo": { "android": { "buildProperties": { "maven": { "versions": { "com.segment.analytics.android:analytics": "4.10.1" } } } } } }
- 若不需要Segment统计能力,直接配置排除该依赖:
{ "expo": { "android": { "exclude": ["com.segment.analytics.android:analytics"] } } }
2. 定位EAS Build构建失败原因
error code 1是EAS Build的通用失败错误码,无明确指向性,必须拉取完整构建日志才能定位具体问题,不要盲目调整配置。
执行以下命令拉取失败构建的完整日志:
# 先查询最近的构建列表,复制失败构建对应的ID eas build:list # 拉取对应构建的完整日志 eas build:view <替换为你的构建ID> --log
绝大多数EAS Build error code 1问题可通过以下操作解决:
- 升级本地EAS CLI到最新版本:执行
npm install -g eas-cli@latest - 补全EAS构建所需依赖:执行
npx expo install eas-build-profiles - 清理历史构建缓存:发起构建时添加
--clear-cache参数跳过异常缓存,命令为eas build --platform android --clear-cache - 若为首次使用EAS Build,先执行
eas build:configure完成基础配置校验,确认android包名、签名配置等参数和原有expo build配置完全一致后再发起构建
3. 构建前本地校验合规性
发起正式云构建前,先在本地执行预构建校验依赖是否处理到位:
npx expo prebuild --platform android
预构建完成后打开android/app/build.gradle文件,检索com.segment.analytics.android:analytics对应的版本号,确认版本为4.10.1或该依赖已被完全移除后,再发起正式构建,避免重复打包不符合要求的安装包。
注意:提交新版本审核前,需要先在Google Play Console版本管理页面停用之前上传的不合规版本,再提交新包审核。
内容的提问来源于stack exchange,提问作者Abhi
相关产品推荐
相关产品推荐

