从您的build文件中移除签署信息

1.在项目的根目录下创建一个名为 keystore.properties 的文件。此文件应当包含您的签署信息,如下所示:
storePassword=myStorePassword
keyPassword=mykeyPassword
keyAlias=myKeyAlias
storeFile=myStoreFileLocation
2.在模块的 build.gradle 文件中,于 android {} 块的前面添加用于加载 keystore.properties 文件的代码。

// Create a variable called keystorePropertiesFile, and initialize it to your
// keystore.properties file, in the rootProject folder.
def keystorePropertiesFile = rootProject.file(“keystore.properties”)

// Initialize a new Properties() object called keystoreProperties.
def keystoreProperties = new Properties()

// Load your keystore.properties file into the keystoreProperties object.
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {

}
3.您可以使用语法 keystoreProperties[‘propertyName’] 引用存储在 keystoreProperties 中的属性。修改模块 build.gradle 文件的 signingConfigs 块,以便使用此语法引用存储在 keystoreProperties 中的签署信息。
android {
signingConfigs {
config {
keyAlias keystoreProperties[‘keyAlias’]
keyPassword keystoreProperties[‘keyPassword’]
storeFile file(keystoreProperties[‘storeFile’])
storePassword keystoreProperties[‘storePassword’]
}
}

}

要通过环境变量获取这些密码:

storePassword System.getenv(“KSTOREPWD”)
keyPassword System.getenv(“KEYPWD”)
要让构建流程在您要从命令行调用此构建时提示您输入这些密码:

storePassword System.console().readLine(“\nKeystore password: “)
keyPassword System.console().readLine(“\nKey password: “)

构建未签署 APK 并手动签署它
打开命令行,然后导航至项目的根目录 - 在 Android Studio 中,选择 View > Tool Windows > Terminal。然后调用 assembleRelease 任务:
gradlew assembleRelease
这将在 project_name/module_name/build/outputs/apk/ 中创建一个名为 module_name-unsigned.apk 的 APK。此 APK 此时处于未签署且未对齐的状态,使用您的私钥签署后才能安装。

使用 zipalign 对齐未签署的 APK:

zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
zipalign 可以确保所有未压缩的数据的开头均相对于文件开头部分执行特定的字节对齐,这样可减少应用消耗的 RAM 量。

通过 apksigner 使用您的私钥签署 APK:

apksigner sign –ks my-release-key.jks –out my-app-release.apk my-app-unsigned-aligned.apk
在本例中,在使用单密钥库文件 my-release-key.jks 中存储的私钥和证书签署 APK 后,将以 my-app-release.apk 的形式输出签署的 APK。

apksigner 工具支持其他签署选项,包括使用单独的私钥和证书文件签署 APK 文件和使用多个签署人签署 APK。有关更多详情,请参阅 apksigner 参考。

注:要使用 apksigner 工具,您必须已安装 Android SDK Build Tool 的修订版 24.0.3 或更高版本。您可以使用 SDK 管理器更新此软件包。

验证您的 APK 是否已签署:

apksigner verify my-app-release.apk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值