您的位置:首页 > 移动开发 > Android开发

Android Studio中的keystore

2016-04-19 21:10 330 查看
跟着导师第一次做一个使用人数达到4位数的软件,软件提供了更新,结果在更新的时候发现,有的人显示的是已安装了存在签名冲突的同名数据包,不能安装。查了下发现是keystore的问题。(直接用apk文件夹下的debug版本的apk放在服务器给他们安装和更新的)

keystore不设置的话默认使用的是C:\Users\Fly\.android下面的debug.keystore,每台电脑的都不一样,所以导致了无法安装的情况。

如何生成自己的keystore呢?这个需要用到keytool这个东西。

首先cmd进入到F:\Java\jdk1.8\bin,keytool就在这个文件夹下。

keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore

-alias android.keystore  生成的keystore别名

-keyalg RSA  加密和数字签名的算法

-validity 1000 有效天数

F:\Java\jdk1.8\bin>keytool -genkey -alias whu.keystore -keyalg RSA -validity 200

00 -keystore whu.keystore

输入密钥库口令:

再次输入新口令:

您的名字与姓氏是什么?

  [Unknown]:  Wang

您的组织单位名称是什么?

  [Unknown]:  whu

您的组织名称是什么?

  [Unknown]:  whu

您所在的城市或区域名称是什么?

  [Unknown]:  武汉市

您所在的省/市/自治区名称是什么?

  [Unknown]:  湖北省

该单位的双字母国家/地区代码是什么?

  [Unknown]:  86

CN=Wang, OU=whu, O=whu, L=武汉市, ST=湖北省, C=86是否正确?

如果没有错误就可以在bin目录下发现多了一个whu.keystore的文件。

如何查看keystore的内容呢呢

依然用keystool那个工具,keytool -list -v -keystore whu.keystore

注:默认的debug.keystore的密码是android

如何在Android Studio中设置keystore呢

在build.gradle的Android节点下加一段话:

signingConfigs{
debug{
storeFile file("C:\\Users\\Fly\\.android\\whu.keystore")
storePassword "flyzy2005"
keyAlias "whu.keystore"
keyPassword "flyzy2005"
}
}


也可以这样设置:

    signingConfigs {

        release {

            storeFile file("xxxxxxxxStore")

            storePassword "xxxxxxxx"

            keyAlias "timehut team"

            keyPassword "xxxxxxxx"

        }

    }

    buildTypes {

        debug {

            signingConfig signingConfigs.release

        }

        release {

            signingConfig signingConfigs.release

        }

    }

这样编译出来的debug版本直接用的是正式签名。

如何在Android Studio中设置app的签名呢

Build->Generate Signed APK,

选择刚才的那个keystore,然后输入名字密码,点Finish就可以在Gragle Console里面看到是否生成了relese版本的apk了。

一定要注意签名!!!!不然更新真的是问题!!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: