React Native构建Release APK报错:仍查找已删除的旧密钥库
我之前也碰到过一模一样的情况!明明已经在gradle.properties里更新了新密钥库的信息,构建Release包时却还是死盯着旧密钥库文件找,其实大概率是这些地方没处理干净:
检查app模块的build.gradle配置
打开android/app/build.gradle,找到signingConfigs下的release节点,确认里面的storeFile是不是引用了gradle.properties里的变量,而不是硬编码了旧密钥库的文件名。正确的写法应该是:signingConfigs { release { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } }如果这里直接写了
file("my-old-keystore.keystore"),那就算gradle.properties改了也没用,必须改成引用变量的形式。清理Gradle缓存
Gradle有时候会缓存旧的配置信息,导致新配置不生效。在项目的android目录下执行命令:# Mac/Linux ./gradlew clean # Windows gradlew clean清理完成后再重新执行Release构建命令。
排查其他配置文件的覆盖
看看有没有其他配置文件(比如local.properties)里也设置了密钥库相关参数,这些文件的优先级可能会覆盖gradle.properties的配置,需要把旧的配置内容删掉。确认新密钥库的路径正确性
确保你的新密钥库my-new-keystore.keystore确实放在了android/app目录下,如果放在其他位置,需要在gradle.properties里填写正确的相对路径或绝对路径,比如:MYAPP_RELEASE_STORE_FILE=../my-new-keystore.keystore清除Android Studio缓存
如果上面的方法都没用,可能是Android Studio的缓存搞的鬼。点击顶部菜单栏的File -> Invalidate Caches...,勾选Invalidate and Restart,重启IDE后再尝试构建。
最后别忘了点击工具栏上的「Sync Project with Gradle Files」按钮,确保所有配置都同步生效。
内容的提问来源于stack exchange,提问作者Dylan

