keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
在你的工程根目录下右键cmd执行这条命令,其中 my-release-key.keystore 是生成后的文件名称,生成目录在工程根目录下,后缀是固定的,名字可以任取,对于其中各个参数的意义,这个表格给出了详细的解释。
参数 | 含义 |
---|---|
-genkey | 生成一个key pair (公钥和私钥) |
-v | 允许详细内容输出. |
-alias | key的别名. 只会用到前8个字符. |
-keyalg | 生成key时的加密算法. 支持 DSA 和 RSA. |
-keysize | 生成的key的大小(bits). 如果不提供, Keytool使用默认的Key大小:1024. 通常情况下,我们推荐使用 2048或者更大的key尺寸. |
-dname | 描述key的创建者的标识名称. 在自签名证书中, 本参数会出现在发布者和主题字段. 注意, 不要在命令行下指定这个选项. 此时 Jarsigner会提示你输入每一个标识名称字段(CN, OU,等) |
-keypass | key的密码. 安全起见, 不要在命令行中包含这个选项. 此时Keytool会提示你输入密码. 这种方式中, 密码不会被保存在shell历史数据中. |
-validity | key的有效期, 以天数为单位. 注意: 推荐使用10000或更大的数字. |
-keystore .keystore | 保存私钥的keystore名称. |
-storepass | keystore的密码. 安全起见, 不要在命令行中包含这个选项. 此时, Keytool会提示输入这个密码. 在这种方式中, 密码不会被保存在shell历史数据中. |
生成签名之后,需要修改
工程目录\frameworks\runtime-src\proj.android\ant.properties
将key.store=E:\LuaGame4\my-release-key.keystore
修改为key.store=E:\LuaGame4\my-release-key.keystore
主要是路径的写法不同,一个是单斜杠,一个是双。
然后在打包apk的时候,第一次会要求你输入keystore的密码和别名,我们的例子中别名alias 是alias_name ,密码就是上面你自己输的密码了