发表于: 2019-01-07 23:20:41

0 826


今天完成的事情

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

编辑app/build.gradle,在android闭包中添加如下文件

signingConfigs {
   config {
       storeFile file("C:/Users/ForrestSu/DocumentsForrestSu.jks")
       storePassword password
       keyAlias forrestsu
       keyPassword password
   }
}

这里在signingConfig闭包中添加了一个config闭包,接着在config闭包中配置keystore文件的各种信息,storeFile用于指定keystore文件的位置,storepassword用于指定密码,keyAlias用于指定别名,keypassword用于指定别名密码。

将签名文件设置号后,在需要生成正式版APK的时候应用这个配置即可。

在app/build.gradle下的release闭包中应用刚才配置的签名信息来进行签名。

buildTypes {
   release {
       minifyEnabled false
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
       signingConfig signingConfigs.config
   }
}

配置完成后就可以开始生成APK了,点击右侧工具栏Gradle > 项目名 > app > Task build,

其中assembleDebug使用来生成测试版的APK,assembleRelease用于生成正式版的APK,assemble用于同时生成测试版和正式版APK。在生成APK之前,线点击clean来清理当前项目。


需要注意的是,目前keystore文件的所有信息都是以明文的形式直接配置在build.gralde中的,这样不安全。其实可以将这些敏感数据配置在一个独立的文件中。

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

KEY_PATH=C:/Users/ForrestSu/DocumentsForrestSu.jks
KEY_PASS=password
ALIAS_NAME=forrestsu
ALIAS_PASS=password

修改buidl.gradle

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

将gradle.properties文件从git版本控制中排除。


生成多渠道APK文件

举例,生成360和百度两个渠道的APK,修改app/build.gradle

android {
   compileSdkVersion 28
   defaultConfig {
       applicationId "com.example.forrestsu.microchat"
       minSdkVersion 17
       targetSdkVersion 28
       versionCode 1
       versionName "1.0"
       testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
       flavorDimensions "1"
   }

   productFlavors {
       qihoo {
           applicationId "com.example.forrestsu.microchat.qihoo"
       }
       baidu {
           applicationId "com.example.forrestsu.microchat.baidu"
       }
   }

这里覆写了applicationId属性,其实还可以覆写defaultConfig中的任何一个属性

在app/src目录下新建一个baidu目录,在baidu目录下新建java和res目录,这样就可以在里面编写百度渠道特有的功能了。


完成后,右侧Gradle Task列表中会多出几个task,如果要生成360渠道的APK文件,就执行assembleQihoo,如果要生成百度渠道的Apk文件,就执行assembleBaidu,如果要一次生成所有渠道的文件,就执行assembleRelease。


收获

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

生成多渠道APK文件




返回列表 返回列表
评论

    分享到