前提:给未签名的apk签名,可以先检查下apk有没有签名
方式一、手动签名
1. 生成密钥文件,选个文件目录,cmd命令行输入以下命令
2. 查看证书信息
3. 开始签名
jarsigner -verbose -keystore E:xxxtest.keystore -signedjar
xxxx签名后的xxx.apk D:xxx未签名的xxx.apk testalias
如下 :jarsigner -verbose -keystore D:test1.keystore -signedjar flutter_demo.apk
E:Flutterflutterdemobuildappoutputsflutter-apkapp-release.apk YYY
方式二、配置自动签名
要在Flutter项目中配置APK签名,你可以按照以下步骤进行操作:
1. 在Android项目的根目录下创建一个sign的文件夹,将你的密钥库文件(.keystore)复制该目录下。
2.再创建名为`key.properties`的文件
确保`key.properties`中指定的密钥库文件名与密钥文件名一致,在文件中添加以下内容,替换为真实的值:
storePassword=your_store_password
storeFile=your_keystore_file.jks
# 如果你在构建不同的构建类型(例如,debug和release),需要提供不同的配置,可以创建以下配置:
# storePassword.debug=debug_store_password
# keyPassword.debug=debug_key_password
# keyAlias.debug=debug_key_alias
# storeFile.debug=debug_keystore_file.jks
#
# storePassword.release=release_store_password
# keyPassword.release=release_key_password
-`your_store_password`:密钥库(keystore)文件的密码。
– `your_key_alias`:密钥的别名。
– `your_keystore_file.jks`:密钥库文件的名称。
如果你需要为不同的构建类型(例如,debug和release)提供不同的配置,请取消注释相应的行,并为每个构建类型提供适当的值。
3. 在Flutter项目的`android/app/build.gradle`文件中,找到`android`块,并在其中添加以下代码:
“`groovy
def signProperties = rootProject.file(“sign/keystore.properties“)
props.load(new FileInputStream(signProperties))
def file = file(props[‘storeFile’])
android {
release {
//如果秘钥库文件和配置文件存在就签名,否则不签名
if (file.exists() && signProperties.exists()) {
keyPassword props[‘keyPassword’]
storeFile file
storePassword props[‘storePassword’]
}
}
}
// …
release {
//混淆
//去除无用res文件
proguardFiles getDefaultProguardFile(‘proguard-android–optimize.txt‘), ‘proguard-rules.pro‘
signingConfig signingConfigs.release
}
}
}
“`
这将读取你在`key.properties`中配置的值,并在`release`构建类型中应用签名配置。
请注意,确保替换`keyAlias`、`keyPassword`、`storeFile`和`storePassword`值为你自己的实际值。
完成这些步骤后,你的Flutter项目将配置APK签名。
在构建发行版本时,Android构建系统将使用指定的密钥库和密码进行签名。
4.编译签名apk
#你可以通过运行`flutter build apk`命令来生成已签名的APK文件,
它将位于`build/app/outputs/flutter-apk/app-release.apk`路径下(对于release构建类型)。
#如果是原生安卓项目,可以在Gradle中找到build/build,编译出签名apk
注意:1.在使用APK签名之前,请确保密钥库文件和相关密码的安全性,并且备份好重要的文件和密码信息,以防止丢失或泄露。2.编译成功后,可以回到文章开头,验证是否签名成功。
原文地址:https://blog.csdn.net/ly_xiamu/article/details/131923058
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_11821.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!