You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行expo eject后无法构建release版apk 仅生成debug版本问题求助

问题成因
  • 残留Expo构建配置覆盖了release属性:Expo eject操作不会完全清理构建注入逻辑,要么在android/app/build.gradle中残留expo-build-properties插件的强制配置,要么在gradle.properties中存在EXPO_DEBUG=true的全局变量,强制所有构建开启debug模式。
  • 签名配置缺失导致构建降级:Expo eject后的项目如果未配置release签名,Gradle会自动降级使用debug签名构建,最终生成的安装包即使名称带release后缀,本质仍是debug版本。
  • 项目根目录react-native.config.js中残留Expo相关构建钩子,构建执行前强制修改了构建类型参数。
解决步骤
  1. 清理Expo残留全局调试配置
    打开项目根目录android/gradle.properties文件,删除所有EXPO_DEBUG相关行,或将值修改为EXPO_DEBUG=false。
  2. 修正release构建配置
    打开android/app/build.gradle文件,找到buildTypes.release代码块,确保配置符合以下要求:
buildTypes {
    release {
        debuggable false // 必须显式设置为false
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        // 移除所有Expo注入的debuggable覆盖逻辑
        signingConfig signingConfigs.release // 已配置release签名时填写,临时测试构建类型可先填signingConfigs.debug,正式发布必须配置独立签名
    }
}

同时检查文件顶部的插件引入部分,删除apply plugin: 'expo-build-properties'这类残留的Expo构建插件引入。
3. 清理缓存后重新构建
依次执行以下命令:

cd android
./gradlew clean
./gradlew assembleRelease
  1. 校验构建结果
    构建完成后可执行以下命令确认包类型:
aapt dump badging app/build/outputs/apk/release/app-release.apk | grep debuggable

输出debuggable='false'即为正式release版本。

内容的提问来源于stack exchange,提问作者whyamsx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:21:00