学而实习之 不亦乐乎

Android Studio生成正式签名的APK

2023-08-18 07:44:16

一、使用Android Studio

  1. 点击Build -- Generate Signed bundle / APK
  2. 如果没有正式的keystore文件,需要点击 Create new 按钮生成一个,生成时可根据实际情况进行填写。
  3. 填写keystore密码,点击next按钮。
  4. 选择生成APK的输出位置。Signature Versions中两项最好都选上。
  5. 点击finish按钮,过一小会,会在APK的输出位置生成正式签名的APK

二、使用Gradle

1、编辑app/build.gradle文件,添加signingConfigs配置节,并在buildTypes中应用此配置。

android {

    ... ...

    signingConfigs {
        config{
            storeFile file('D:/path/to/storeFile/storefile.jks')
            storePassword '123456'
            keyAlias 'test'
            keyPassword '123456'
        }
    }  

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

2、由于keystore文件所有的信息都是以明文的形式直接配置在build.gradle中的,为了安全,Android推荐的作法是将这类敏感数据配置在一个独立的文件里面。然后再在gradle.properties文件中添加如下内容。

KEY_PATH=D:/path/to/storeFile/storefile.jks
KEY_PASS=123456
ALIAS_NAME=test
ALIAS_PASS=123456

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

三、生成多渠道APK

虽然生成一个带签名的APK,已经完全够用了。可是当我们需要在不同的APP商店发布时希望有一些小的不同,就比较头疼(如界面不同等)。

1、如生成360和百度两个渠道的APP

修改app/build.gradle文件如下:

productFlavors{
    qihoo{
        applicationId "com.xxx.android.qihoo"
    }

    baidu{
        applicationId "com.xxx.android.baidu"
    }
}  

 

2、接下来需要根据不同渠道编写差异性需求,在app/src目录下新建一个baidu目录,然后在百度目录下再新建java和res这两个目录,这样就可以在这里覆写百度渠道的功能了,java目录用于存放代码,res目录用于存放资源,如果需要覆写AndroidManifest文件中的内容,还可以在baidu目录下再新建一个AndroidManifest.xml文件。

如需要修改应用名称,则在baidu/res/values/string.xml中的内容进行如下修改:

<resources>
    <string name=”app_name”>xxx百度版</string>
</resource>