复制Android Studio项目后signingReport任务SHA-256值相同问题
SHA-256值和应用名称无关,它绑定的是签名密钥
你看到SHA-256和原项目一致,是因为你还在使用同一个签名密钥——不管是debug模式下Android Studio默认生成的密钥,还是原项目用的release密钥,只要密钥没换,不管你改应用名、字符串内容这些项目文本,SHA-256都不会变,它只和签名用的密钥文件直接相关。
要让复制后的项目拥有唯一的SHA-256,你可以这么做:
生成新的Debug签名密钥
默认的Debug密钥存在系统用户目录下(比如Windows的C:\Users\[你的用户名]\.android\debug.keystore,Mac/Linux的~/.android/debug.keystore),所有用默认配置的项目都会共用它。你可以给新项目配置独立的Debug密钥:- 用
keytool命令生成新的keystore文件:
按提示设置密码(可以用默认的keytool -genkey -v -keystore new_debug.keystore -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000android方便调试),其他信息随便填就行。 - 在项目的
app/build.gradle里配置自定义Debug签名:
同步项目后,再运行android { signingConfigs { debug { storeFile file("new_debug.keystore") // 这里填你生成的keystore路径 storePassword "android" keyAlias "androiddebugkey" keyPassword "android" } } buildTypes { debug { signingConfig signingConfigs.debug } } }signingReport就能得到新的SHA-256了。
- 用
生成全新的Release签名密钥
如果是准备发布的版本,直接生成一套全新的Release keystore,替换原项目的签名配置即可。生成命令和上面类似,只是可以自定义别名、密码和有效期,比如:keytool -genkey -v -keystore my_new_release.keystore -alias my_release_alias -keyalg RSA -keysize 2048 -validity 100000然后在
build.gradle的signingConfigs里配置release节点,指定这个新的keystore信息,打包时用它签名就能得到唯一的SHA-256。
内容的提问来源于stack exchange,提问作者me.at.coding
相关产品推荐
相关产品推荐

