Android ZoneAndroid 流程总结

Android Studio签名配置方法

2018-07-13  本文已影响25人  翻译不了的声响

在开发过程中,有时候在第三方集成时候,会遇到测试环境无法调试或调用失败的情况。例如第三方的分享和登录,需要软件签名之后才能成功调用第三方的接口。但是调试过程中频繁打包签名很麻烦,效率也很低。那么有什么方法,可以不用打包去签名呢?方法当然是有的,下面就介绍几种签名的方法。

1. 签名配置

方法一:
通过项目配置界面配置签名
1)点击 File —— Project Structure... 进入项目配置界面;

项目配置图

2)选择 app —— Singing —— Add 添加签名相关信息;

配置项目签名图

3)选择 Build Types —— Singing Config 创建签名配置,点击 OK

创建签名配置图

方法二:
通过 build.gradle 文件配置签名
1)在项目app目录下的build.gradle里配置签名信息

android {
    signingConfigs {
        debug {
            keyAlias 'key'
            keyPassword '123456'
            storeFile file('E:/key/keys.jks')
            storePassword '123456'
        }
        release {
            keyAlias 'key'
            keyPassword '123456'
            storeFile file('E:/key/keys.jks')
            storePassword '123456'
        }
    }

    buildTypes {
        debug {
            debuggable true
            zipAlignEnabled true
            debuggable true
            minifyEnabled false //是否混淆
            shrinkResources false //是否去除无效的资源文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            if (keyfile.exists()) {
                signingConfig signingConfigs.debug
            }
        }
        release {
            zipAlignEnabled true
            debuggable false
            minifyEnabled true //是否混淆
            shrinkResources true //是否去除无效的资源文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            if (keyfile.exists()) {
                signingConfig signingConfigs.release
            }
        }
    }
    ...
}

方法三:
通过 local.properties 和 build.gradle 文件配置签名
项目下的local.properties主要存储环境资源的相关信息。默认是被忽略的,不会添加到版本控制里面,对于里面的配置信息会相对安全不会泄露。

1)在项目根目录下local.properties里自定义配置

# sdk、ndk路径
ndk.dir=E\:\\SDK\\ndk-bundle
sdk.dir=E\:\\SDK
# 签名文件
key.file=E\:\\key\\keys.jks
keyPassword=123456
keyAlias=key
storePassword=123456

2)在项目app目录下的build.gradle里读取local.properties字段信息

android {  
     //加载资源
      Properties properties = new Properties()
      InputStream inputStream = project.rootProject.file('local.properties').newDataInputStream()
      properties.load(inputStream)
      //读取文件
      def sdkDir = properties.getProperty('key.file')      
      //读取字段
      def keyfile =file(sdkDir)
      def key_keyAlias = properties.getProperty('keyAlias')
      def key_keyPassword = properties.getProperty('keyPassword')
      def key_storePassword = properties.getProperty('storePassword') 

  signingConfigs {
      release {
            storeFile keyfile
            storePassword key_storePassword
            keyAlias key_keyAlias
            keyPassword key_keyPassword
      }
      debug{
            storeFile keyfile
            storePassword key_storePassword
            keyAlias key_keyAlias
            keyPassword key_keyPassword
      }
    }

    buildTypes {
        debug {
            debuggable true
            zipAlignEnabled true
            debuggable true
            minifyEnabled false //是否混淆
            shrinkResources false //是否去除无效的资源文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            if (keyfile.exists()) {
                signingConfig signingConfigs.debug
            }
        }
        release {
            zipAlignEnabled true
            debuggable false
            minifyEnabled true //是否混淆
            shrinkResources true //是否去除无效的资源文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            if (keyfile.exists()) {
                signingConfig signingConfigs.release
            }
        }
    }
    ...
}
2. 签名查看

方法一:(适用于 AS)
1)打开 AS工具窗口栏右边的 Gradle —— Project —— app —— Tasks —— android —— signingReport,双击运行 signingReport

Gradle窗口图

2)signingReport 运行完后,就可以看到签名的相关信息

image.png

方法二:(适用于 ES 和 AS)
1)在系统命令面板(win + R —— cmd)或者 AS底端工具类里的 Terminal 中输入:
keytool -v -list -keystore 签名文件路径

2)输入密钥库口令(输入口令时隐藏不展示输入内容),点击回车键;

输入命令图

3)密钥口令校验正确后,就可以看到签名的相关信息

签名信息图
上一篇 下一篇

猜你喜欢

热点阅读