android studio 打包签名文件

方法一: build----->generate signed APK,弹出对话框

android studio 打包签名文件_第1张图片

如果有签名文件,选择签名文件,如果没有,则点击Create new创建,输入密码和别名,点击Next,选择APK生成的路径,signature versions:我选择V2,然后点击Finish开始打包。

这种方式打包出来的apk在自定义的路径里。

方法二: 在build.gradle中配置:

signingConfigs{
        release {
            storeFile file("../qwerr4k.jks")
            storePassword "asdfgh"
            keyAlias "qwerr4k"
            keyPassword "asdfgh"
        }

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

点击右侧工具栏的Gradle->项目名->:app->Tasks->build

assemble 用于生成测试版和正式版的apk

assembleDebug 用于生成测试版apk

assembleRelease 用于生成正式版apk

apk自动生成在app/build/outputs/apk目录, debug版本在debug目录下,release版本在release目录下。

 

不在Gradle中配置password

signingConfigs { //gradle assembleRelease  
    myConfig {  
        storeFile file("../qwer4k.jks")  
        storePassword System.console().readLine("\nKeystore password: ")  
        keyAlias "qwer4k"  
        keyPassword System.console().readLine("\nKey password: ")  
    }  
} 

这样在执行gradle 命令$ gradle assembleRelease时会被要求输入密码

 

 

 

 

三,修改APK的默认名称

在build.gradle的android{}中加入

android.applicationVariants.all { variant ->
        variant.outputs.all { output ->
            def outputFile = output.outputFile
            if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 这里修改apk名称
                def fileName = outputFile.name.replace("app", "xxoo_${defaultConfig.versionName}.${defaultConfig.versionCode}")
                outputFileName = new File(outputFile.parent, fileName)
            }
        }
    }

gradle sync时报如下错误:

修改方法:

outputFileName = new File(outputFile.parent, fileName)中的路径去掉改成
outputFileName = new File("", fileName)即可,编译出来的apk存放路径与没改名字前一致。

Tips:      new File(output.outputFile.parent, "app_${defaultConfig.applicationId }_"+ buildType.name + "_v${defaultConfig.versionName}-${releaseTime()}.apk");
①output.outputFile.parent表示生成apk的路径,这个是默认路径在项目/app/build/outpus/apk,当然我们可以自己写路径。
②defaultConfig.applicationId表示defaultConfig标签下的名称。
③buildType.name指编译类型,就是debug或者release
④defaultConfig.versionName表示在defaultConfig标签下写的版本号

 

你可能感兴趣的:(android学习)