为了账号安全,请及时绑定邮箱和手机立即绑定

Android集成发布详解(二)

标签:
Android

上一篇主要讲了安卓版本编译版本发布的过程,本篇主要写版本编译脚本的实现,包括签名文件处理及多渠道版本编译。安卓集成发布详解(一)

##一、签名部分编写 gradle本身支持直接签名,只需要在releas部分添加如下代码即可

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

signingConfigs {

        debug   {

 

        }

        release   {

            storeFile   file("../yourapp.keystore")

            storePassword   "your password"

            keyAlias   "your alias"

            keyPassword   "your password"

        }

    }

     

    buildTypes {

        debug   {

            minifyEnabled   false

            zipAlignEnabled   false

            shrinkResources   false

            signingConfig   signingConfigs.debug

        }

 

        release   {

            minifyEnabled   true//混淆编译

            zipAlignEnabled   true

            //移除无用的资源文件

            shrinkResources   true

            signingConfig   signingConfigs.release

            proguardFiles   getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }

    }

 

一般填上上面的代码即可执行签名,但是一般这种方式不太安全,一般建议不要在build.gradle文件中写上签名文件的密码,这是由于build.gradle文件一般都会集成到代码的版本控制中,这样所有人都会有签名文件的密码,会有后续的麻烦。所以呢,我们接下来要做的就是把签名文件的密码隔离起来,写到一个配置文件中,此配置文件不包含在代码版本控制中,这样其他开发者就不会知道签名文件的密码。

gradle的配置文件一般以.properties结束,我们先新建一个signing.properties文件,内容如下:

[代码]java代码:

?

1

2

3

4

STORE_FILE=yourapp.keystore

STORE_PASSWORD=your password

KEY_ALIAS=your alias

KEY_PASSWORD=your password

 

注意没有字符串双引号”“

注意没有字符串双引号”“

注意没有字符串双引号”“

重要的事情说三遍

我们上面新建了一个配置文件,用来保存签名文件的信息,并且此文件不会加入到代码版本控制中,达到保护签名文件的目的。接下来我们就应该在guild.gradle文件中读取我们的配置文件,读取的代码如下:

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

File propFile = file('signing.properties');

if (propFile.exists()) {

    def Properties   props = new Properties()

    props.load(new FileInputStream(propFile))

    if (props.containsKey('STORE_FILE')   && props.containsKey('STORE_PASSWORD') &&

            props.containsKey('KEY_ALIAS')   && props.containsKey('KEY_PASSWORD')) {

        android.signingConfigs.release.storeFile   = file(props['STORE_FILE'])

        android.signingConfigs.release.storePassword   = props['STORE_PASSWORD']

        android.signingConfigs.release.keyAlias   = props['KEY_ALIAS']

        android.signingConfigs.release.keyPassword   = props['KEY_PASSWORD']

    } else {

        android.buildTypes.release.signingConfig   = null

    }

} else {

    android.buildTypes.release.signingConfig   = null

}

 

代码很简单,就是读取文件,然后拿到签名需要的四个变量值分别赋值即可。

以上就是签名部分代码,是不是很简单

原文链接:http://www.apkbus.com/blog-705730-61069.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消