React Native打包安卓apk时出现签名配置错误怎么办?

皇甫保艳 阅读 46

我在用React Native打包安卓release版时一直报错,提示Keystore file not found。按照官方文档配置了android/app/build.gradle的signingConfig,也设置了环境变量,但执行./gradlew assembleRelease还是报同样的错,明明文件路径写对了啊…

尝试过直接在build.gradle里写绝对路径:


android {
    ...
    signingConfigs {
        release {
            storeFile file("/Users/name/key.jks")
            // 其他配置
        }
    }
}

但依然提示找不到文件,这是配置位置有问题吗?或者需要额外设置权限?

我来解答 赞 11 收藏
二维码
手机扫码查看
2 条解答
夏侯诗雅
这个问题大概率是路径和权限的问题,性能上绝对路径确实会带来一些隐患,尤其是不同环境下的兼容性。建议你改成相对路径试试,把keystore文件直接放在项目目录下,比如android/app/key.jks,然后在build.gradle里这么写:

android {
...
signingConfigs {
release {
storeFile file("key.jks")
storePassword "你的密码"
keyAlias "你的别名"
keyPassword "你的密码"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}

另外要注意一点,gradle执行的时候可能会切换工作目录,导致相对路径解析出问题。所以最好确认一下当前执行目录是不是项目根目录,不是的话需要调整脚本。

还有个常见坑是文件权限问题,确保这个keystore文件的权限设置允许读取,Linux/Mac下可以执行 chmod 644 key.jks 来设置合适的权限。

最后提醒一下,记得把keystore的密码信息从代码里抽离出来,用环境变量或者CI配置来管理这些敏感信息,不然提交到版本库会有安全风险。我之前就遇到过类似的情况,排查了好久才发现是权限问题,真是累觉不爱。
点赞 1
2026-02-17 06:03
Des.予曦
签名配置那块儿确实容易踩坑。你绝对路径写法是对的,但可能忽略了 Gradle 的工作目录问题。执行 ./gradlew 时当前目录不是项目根目录的话,相对路径就会出错。建议用项目相对路径写法更稳妥:

storeFile file("../key.jks")


或者用环境变量会更灵活些:

signingConfigs {
release {
storeFile file(System.getenv("KEYSTORE_PATH"))
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias System.getenv("KEY_ALIAS")
keyPassword System.getenv("KEY_PASSWORD")
}
}


记得在打包命令里带上环境变量:

KEYSTORE_PATH=你的路径 KEYSTORE_PASSWORD=密码 KEY_ALIAS=别名 KEY_PASSWORD=别名密码 ./gradlew assembleRelease


另外检查一下 key.jks 文件的权限,确保有读取权限:

chmod 600 android/app/key.jks


这样配置后应该就能找到文件了。如果还有问题,可以临时把 key.jks 拷贝到 android/app/ 目录下,用相对路径更直观。
点赞 6
2026-02-06 09:33