我们有时候在开发调试的时候会有需要直接使用软件的正式签名去调试的情况,这就涉及到as里边要怎么配置运行的签名文件的问题了。
1.拥有一个签名文件
如果有签名文件可直接跳过这个步骤。没有签名文件的你需要先拥有一个签名文件才能继续后续的操作,那么要怎么拥有呢,具体如下:
在as页面点击Build---Generate Sigined Apk,然后会出现一个给Apk设置签名文件的弹窗页面,如下:
如果没有点击 Create new... 按钮来新建一个签名文件,点击后页面如下:
这里新建一个签名文件需要填写一些软件的基本信息,这里要记住的有签名文件的密码 ,别名和别名的密码,在对软件签名的时候会使用到这些信息。 这里的Key storepath是签名文件保存的路径。
2.为项目添加签名文件
将刚才新建的签名文件设置到项目中来。
具体操作:点击项目设置图标,然后点击右侧的app会出现项目的配置页面。
然后在点击页面中的signing标签会出现配置签名文件的页,如下
这里配置好点击ok后在app的build.gradle文件中会出现这样的内容:
···
signingConfigs {//配置签名文件,可配多个标签 如release,debug等签名文件
release {
storeFile file('hello')
storePassword "1234"
keyPassword "1234"
keyAlias "1234"
}
}
···
3.配置项目编译时使用的签名文件
我们平时在调试项目直接点击运行的时候生成的apk是由as在编译时给我们生成了一个临时的签名文件去做的签名,如果换一台电脑运行项目签名文件会发生改变,这样情况下做软件升级安装的话会提示安装失败的。
固定软件运行时debug版本apk的签名依然是在项目设置中,点击buildtype标签,然后会有release版本的签名文件配置和debug版本的配置。 这里直接运行的时候是debug包,配置debug的签名文件就可以了。这里的signing Config选择的就是我们第二步配置的签名文件,如果有多个签名文件的话就是在这里选择的。这里点击ok之后就已经配置完成了。
我在配置的时候遇到过一个问题,我发现在build.gradle文件中如果signingConfigs 标签在buildtype标签之后的话编译会不通过然后报错。所以如果配置完成后编译不通过检查一下signingConfigs 是否是在buildtype之前。