Expo使用prebuild本地构建时如何自定义已有密钥库(暂不使用EAS)
解决方案:Expo Prebuild 后使用已有密钥库打包 Android 应用
1. 配置 Android 项目的 Gradle 文件
找到生成的 android/app/build.gradle 文件,按以下方式修改:
步骤1:加载密钥库配置(避免硬编码敏感信息)
在文件开头添加代码,读取 local.properties 中的密钥信息:
def keystoreProperties = new Properties() def keystorePropertiesFile = rootProject.file('local.properties') if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) }
步骤2:配置签名信息
在 android 块内添加 signingConfigs 配置:
android { // ... 已有配置 signingConfigs { release { storeFile file(keystoreProperties['MYAPP_RELEASE_STORE_FILE']) storePassword keystoreProperties['MYAPP_RELEASE_STORE_PASSWORD'] keyAlias keystoreProperties['MYAPP_RELEASE_KEY_ALIAS'] keyPassword keystoreProperties['MYAPP_RELEASE_KEY_PASSWORD'] } } // ... 其他配置 }
步骤3:关联签名配置到 Release 构建类型
在 buildTypes 的 release 块中指定签名配置:
buildTypes { release { signingConfig signingConfigs.release // ... 已有配置(如 minifyEnabled、proguardFiles 等) } }
步骤4:在 local.properties 中填写密钥信息
打开 android/local.properties 文件(无则创建),添加你的密钥库详情:
MYAPP_RELEASE_STORE_FILE=/绝对路径/到/你的/密钥库文件.jks MYAPP_RELEASE_STORE_PASSWORD=你的密钥库密码 MYAPP_RELEASE_KEY_ALIAS=你的密钥别名 MYAPP_RELEASE_KEY_PASSWORD=你的密钥密码
2. 验证配置并打包
进入 android 目录,运行以下命令生成签名后的 Release APK:
./gradlew assembleRelease
配置正确的话,打包完成后可在 android/app/build/outputs/apk/release/ 目录下找到签名后的APK文件。
3. 重要注意事项
- 务必将
local.properties添加到.gitignore文件中,防止密钥信息泄露到版本控制系统 - 确保当前使用的密钥库和之前发布应用时的签名信息完全一致,否则会导致应用更新时出现签名不匹配的错误
内容的提问来源于stack exchange,提问作者rob-art
相关产品推荐
相关产品推荐

