Android 应用签名配置记录

一、生成签名文件

生成 keystore 签名文件,可以直接通过 AS 生成。

Build–>Generate signed Bundle/APK --> APK --> Create new…

图1.png

填写配置信息:
图2.png

设置 keystore 路径、密码,设置key:别名、密码、有效期,证书等。
Key store path:存放路径(文件名和后缀都可以根据需要任意填写)
Key Alias:别名
Validity(years):有效期(一般默认25年)
Certificate:证书
First and Last Name:姓名
Organization Unit:组织单位
Organization:组织
City or Locality:城市或地区
State or Province:州或省
Country Code(XX):国家代码(XX),中国:86

填完相关信息后,点击 OK

图3.png

然后勾选相应信息
图4.png

点击 finish 后,文件就生成了。

二、配置 gradle

看看 gradle 文件中签名相关配置。

signingConfigs {
        release {
            storePassword 'aaaaaa'
            keyAlias = 'lynn'
            keyPassword 'aaaaaa'
            //这里的key_lynn.jks 文件是放在了app目录下,可以根据具体文件路径填写
            storeFile file('./key_lynn.jks')
        }
    }
    
buildTypes {
    release {
        zipAlignEnabled true
        minifyEnabled true
        shrinkResources true // 自动清理无用资源
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
     }
    debug {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.debug
    }
}

到这一步,签名信息基本是配置好了,可以编译一下是否成功。

gradlew assembleRelease

三、配置外部签名文件

前面的步骤下来,配置的签名密码什么的写死在 build.gradle 文件中,如果直接上传到服务器,可能会导致密码泄露,更严重的是别人可以拿到你的签名文件重新打包你的应用发布。

那么,有没有办法可以把签名信息隐藏起来呢?

可以通过把签名信息存到本地来解决此问题。

1. 新建配置文件

可以在根目录下新建配置文件 signing.properties
然后在 .gitignore 文件中配置忽略此文件的提交。

/signing.properties

然后在 signing.properties 文件填写签名的信息。

RELEASE_STORE_FILE=../app/key_lynn.jks
RELEASE_STORE_PASSWORD=aaaaaa
RELEASE_KEY_PASSWORD=aaaaaa
RELEASE_KEY_ALIAS=lynn

当然,这里其实可以直接使用 local.properties,不用额外新建 signing.properties 文件,后面的例子也是直接使用 local.properties

2. 配置加载配置文件信息

接着,需要在 ./app/build.gradle 中导入文件中的签名信息。

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
def keystorePassword = properties.getProperty("RELEASE_STORE_PASSWORD")
def keystoreAlias = properties.getProperty("RELEASE_KEY_ALIAS")
def keystoreAliasPassword = properties.getProperty("RELEASE_KEY_PASSWORD")
def keyFile = file(properties.getProperty("RELEASE_STORE_FILE"))

修改 signingConfigs :

signingConfigs {
        release {
            storePassword keystorePassword
            keyAlias = keystoreAlias
            keyPassword keystoreAliasPassword
            storeFile keyFile
        }
    }

到此,整个配置就完成了,赶快编译一下是否成功吧。

gradlew assembleRelease
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值