Flutter项目未生成debug.keystore却仍查找该文件,原因何在?
问题分析与解决方法
问题原因
你仅配置了release构建的签名规则,但flutter run默认启动的是debug构建。debug构建会自动尝试调用系统默认的debug.keystore(路径:C:\Users\ASUS\.android\debug.keystore),而该密钥库格式无效,因此抛出异常。
解决方案
方案1:重新生成有效debug密钥库
打开命令提示符(CMD),执行以下命令生成符合规范的debug keystore:
keytool -genkey -v -keystore C:\Users\ASUS\.android\debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
执行过程中所有提示直接按回车使用默认值即可。
方案2:让debug构建复用自定义密钥库
修改Gradle配置,为debug构建添加签名规则,直接使用你已有的upload-keystore.jks:
signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null storePassword keystoreProperties['storePassword'] } // 添加debug签名配置 debug { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } buildTypes { release { signingConfig signingConfigs.release } debug { // 指定debug使用自定义签名 signingConfig signingConfigs.debug } }
注意:需确保key.properties文件中补充了keyPassword和storePassword的配置项,否则会触发新的签名错误。
方案3:直接运行release模式
如果无需debug构建,直接执行以下命令启动应用,此时会使用你配置的release签名规则,不会访问默认的debug keystore:
flutter run --release
内容的提问来源于stack exchange,提问作者Ameen Ul Islam
相关产品推荐
相关产品推荐

