前提:给未签名apk签名可以检查apk没有签名

your_app.apk替换为要检查的APK文件名执行命令后,你将看到与APK文件关联的签名信息
注意:上述命令基于Java Development Kit (JDK) 中的
keytool工具,因此请确保你的系统上已安装JDK,并且
keytool命令可以命令行使用

方式一、手动签名

1. 生成密钥文件,选个文件目录cmd命令行输入以下命令
keytool -genkey -v -keystore test.keystore  -alias YYY -keyalg RSA -validity 4000

YYY是
别名,4000是有效天数4000天
生成密钥文件
test.keystore
执行命令之后会提示设置密码,以及一些公司名称之类的;密码一定要记住,其他随意
其中Keytool 是Java提供的密钥(Key)和证书(Certificate)管理工具用于管理公钥/私钥对以及相关证书
Keytool是Java自带的工具,安装Java即可。位于Java安装的bin目录中, 比如C:Program FilesJavajre1.8.0_131bin
2. 查看证书信息  
Enter keystore password: //输入密码,回车
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项目的Android为例

要在Flutter项目中配置APK签名,你可以按照以下步骤进行操作

1. 在Android项目的根目录创建一个sign的文件夹,将你的密钥库文件(.keystore复制目录下。
2.再创建名为`key.properties`的文件

确保`key.properties`中指定的密钥库文件名与密钥文件名一致,在文件中添加以下内容替换为真实的值:

  “`properties

   storePassword=your_store_password

   keyPassword=your_key_password

   keyAlias=your_key_alias

   storeFile=your_keystore_file.jks

  

   # 如果你在构建不同的构建类型(例如,debugrelease),需要提供不同的配置,可以创建以下配置:

   # 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

   # keyAlias.release=release_key_alias

   # storeFile.release=release_keystore_file.jks

-`your_store_password`:密钥库(keystore)文件的密码

   – `your_key_password`:密钥的密码

   – `your_key_alias`:密钥的别名。

   – `your_keystore_file.jks`:密钥库文件的名称

 如果你需要为不同的构建类型(例如,debug和release)提供不同的配置,请取消注释相应的行,并为每个构建类型提供适当的值。

3. 在Flutter项目的`android/app/build.gradle`文件中,找到`android`块,并在其中添加以下代码

   “`groovy

//声明 获取签名配置 配置文件路径

def signProperties = rootProject.file(“sign/keystore.properties“)

def props = new Properties()

props.load(new FileInputStream(signProperties))

def file = file(props[‘storeFile’])

android {

    signingConfigs {

        release {

            //如果秘钥库文件和配置文件存在就签名,否则不签名

            if (file.exists() && signProperties.exists()) {

                keyAlias props[‘keyAlias’]

                keyPassword props[‘keyPassword’]

                storeFile file

                storePassword props[‘storePassword’]

            }

        }

    }

       // …

   

 buildTypes {

    release {

        //混淆

        minifyEnabled true

        //去除无用res文件

        shrinkResources true

        proguardFiles getDefaultProguardFile(‘proguard-androidoptimize.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.编译成功后,可以回到文章开头,验证是否签名成功。

参考反编译打包签名:apk反编译和重新打包流程_apk反编译后重新打包_☆七年的博客-CSDN博客

创造价值,乐哉分享!776147358

原文地址:https://blog.csdn.net/ly_xiamu/article/details/131923058

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_11821.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注