为应用生成签名文件的两种方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39397471/article/details/77805076

使用Android Studio生成签名文件

Android系统要求只有签名后的APK文件才可以安装,因此需要对将要上线的APK文件进行签名;

使用Android Studio生成正式签名的APK文件.

  • 点击Android Studio导航栏上的Build -> Generate Signed APK,首次点击可能会提示让我们输入操作系统的密码,输入密码后点击OK会弹出创建签名APK的对话框
    这里写图片描述

  • 点击Create new按钮创建新的签名文件
    这里写图片描述

生成的签名文件
这里写图片描述

使用Gradle生成带有正式签名的APK文件

  • 编辑app/build.gradle文件,在android闭包中添加如下内容:
android {
    compileSdkVersion 26
    buildToolsVersion "26.0.0"
    defaultConfig {
        applicationId "zhengyanze.com.aipoemmax"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    signingConfigs{
        config{
            storeFile file('C:/Users/zheng/zyz.jks')
            storePassword '1234567'
            keyAlias 'yanze'
            keyPassword '1234567'
        }
    }
  • 将签名消息都配置好之后,接下来只需要在生成正式版APK的时候去应用这个配置就可以了.继续编辑app/build.gradle文件:
android{
...
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }
    }
}
  • 生成正式签名的APK文件
    点击右侧工具栏的 Gradle -> 项目名 -> :app -> Tasks -> build

这里写图片描述
其中assembleDebug用于生成测试版的APK文件,assembleRelease用于生成正式版的APK文件,assemble用于同时生成测试版和正式版的APK文件。

在生成APK之前,先要双击clean这个Task来清理一下当前项目,然后双击assembleRelease生成正是签名的APK文件;
提示BUILD SUCCESSFUL,说明assembleRelease执行成功了;APK文件回自动生成在app/build/outputs/apk目录下:
这里写图片描述

  • 安全处理
    现在keystore文件的所有信息都是铭文的形式写在build.gradle中的,这样就不太安全.Android推荐的做法是将这类敏感信息配置在一个独立的文件里面,然后再在build.gradle中去读取这些数据;

Android Studio项目的根目录下又一个gradle.properties文件,它是专门用来配置全局键值对数据的,在gradle.properties文件中天机如下内容:

KEY_PATH=C:/Users/zheng/zyz.jks
KEY_PASS=1234567
ALIAS_NAME=yanze
ALIAS_PASS=1234567

修改build.gradle读取这些数据:

 signingConfigs{
        config{
            storeFile file(KEY_PATH)
            storePassword KEY_PASS
            keyAlias ALIAS_NAME
            keyPassword ALIAS_PASS
        }
    }

猜你喜欢

转载自blog.csdn.net/weixin_39397471/article/details/77805076
今日推荐