首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java.lang.SecurityException: GoogleCertificatesRslt:使用调试密钥签名的包(go/gsrlt)

问题概述

java.lang.SecurityException: GoogleCertificatesRslt: 使用调试密钥签名的包(go/gsrlt) 这个错误通常出现在Android应用开发中,表示应用使用了调试密钥进行签名,而不是发布密钥。调试密钥仅用于开发和测试阶段,而发布密钥用于正式发布应用。

基础概念

  1. 调试密钥:在Android开发过程中,默认生成的密钥,用于签名调试版本的应用。
  2. 发布密钥:用于签名正式发布版本的应用,确保应用的来源可信。

相关优势

  • 调试密钥:方便开发者快速迭代和测试应用。
  • 发布密钥:提供更高的安全性,确保应用的来源可靠。

类型

  • 调试签名:用于开发和测试阶段。
  • 发布签名:用于正式发布应用。

应用场景

  • 开发阶段:使用调试密钥签名应用,方便快速迭代和测试。
  • 发布阶段:使用发布密钥签名应用,确保应用的安全性和可信度。

问题原因

这个错误通常是因为在发布应用时,仍然使用了调试密钥进行签名。调试密钥不应该用于正式发布应用,因为它不具备发布密钥的安全性和可信度。

解决方法

  1. 生成发布密钥: 首先,你需要生成一个发布密钥。可以使用以下命令生成:
  2. 生成发布密钥: 首先,你需要生成一个发布密钥。可以使用以下命令生成:
  3. 这将生成一个名为 my-release-key.keystore 的密钥库文件,并设置别名为 my-key-alias
  4. 签名应用: 使用生成的发布密钥对应用进行签名。可以使用以下命令:
  5. 签名应用: 使用生成的发布密钥对应用进行签名。可以使用以下命令:
  6. 这将使用 my-release-key.keystore 密钥库文件中的 my-key-alias 别名对 my_application.apk 进行签名。
  7. 验证签名: 签名完成后,可以使用以下命令验证签名是否成功:
  8. 验证签名: 签名完成后,可以使用以下命令验证签名是否成功:

参考链接

通过以上步骤,你应该能够解决 java.lang.SecurityException: GoogleCertificatesRslt: 使用调试密钥签名的包(go/gsrlt) 错误,并成功发布你的Android应用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【错误记录】IntelliJ IDEA 打包包含依赖库的 Jar 包执行报错 ( Invalid signature file digest for Manifest main attribute )

: Invalid signature file digest for Manifest main attributes jar 包中的签名文件是无效的 , 删除 META-INF 目录下的签名文件即可...; 打开压缩包 , 删除这两个 签名文件 ; 一、报错信息 ---- 处理依赖库时 , 选择将 依赖库 打包到 Jar 包内 , 配置如下 : 如果使用第二种方式 , 会在打包时 , 只对核心的主程序代码进行打包..., 将依赖库拷贝到同级目录中 ; 如果这样 , 将程序拷贝到其它目录时 , 还需要单独拷贝依赖库 , 这样操作比较繁琐 ; 这是使用第二种方式 , 输出的 jar 包 , 要独立管理一堆 jar 包...: Manifest主属性的签名文件摘要无效 该错误提示很明显 , 就是说 jar 包中的 META-INF 信息签名文件无效 ; 签名文件 无效 , 就不用签名文件 , 直接删除这两个签名文件 ; 使用压缩工具打开..., 这里我使用的是 7-zip 压缩工具打开了 jar 包 , 删除 MANIFEST.MF 和 MSFTSIG.RSA 两个签名文件 ; 然后再次执行程序 , 程序可以正常运行 ;

2.1K30
  • OpenHarmony—Hap包签名工具

    按照有无应用签名证书可分为以下两种场景:无应用签名证书场景: 开发者使用该工具对Hap包签名时,需按照签名步骤从第一步生成应用签名证书密钥对依次完成应用签名证书生成、profile文件签名、应用签名流程...profile文件进行签名对Hap包进行签名注意事项: 步骤一中的密钥对算法推荐使用ECC,出于安全性考虑,应用签名暂不使用RSA算法。...,在后续生成应用 签名证书和对Hap包进行签名操作会使用到。...” ├── -keystorePwd # 密钥库口令,OpenHarmony.p12口令默认为“123456”对Hap包进行签名调用Hap包签名接口,使用应用签名密钥为Hap包签名...根据实际需求,修改对应的字段。完成配置文件修改后,开发者可以参考 Hap包签名工具使用指导 进行应用签名。

    16510

    完全可复制、经过验证的 Go 工具链

    另一个我们不得不复制的包是 compress/zlib,因为链接器会写入压缩的调试信息,而对压缩库的优化可能会更改精确的输出。随着时间的推移,我们还将其他包添加到了这个列表[4]中。...Source directory(源代码目录):Go程序包含了运行时和调试元数据中的完整路径,以便在程序崩溃或在调试器中运行时,堆栈跟踪包含源文件的完整路径,而不仅仅是文件名。...Cryptographic signing keys(加密签名密钥):macOS上的Go工具链除非我们使用获得苹果批准的签名密钥对二进制文件进行签名,否则不会在最终用户系统上运行。...我们使用一个内部系统来使用Google的签名密钥对它们进行签名,显然,我们不能分享该秘密密钥以允许其他人复制已签名的二进制文件。...我们不希望验证器需要完全相同版本的这些工具,所以我们采用了与加密签名密钥相同的方法,编写了一个验证器,可以查看软件包内部并检查工具链文件是否与预期完全相同。

    37510

    activity组件导出实验

    指定可以处理的数据类型,允许使用通配符的方式进行指定。...同一个签名文件 可以正常启动 打正式包 不同签名文件 不可以启动 报错java.lang.SecurityException: Permission Denial: starting Intent {...同一个签名文件 可以正常启动 打正式包 不同签名文件 不可以启动 报错java.lang.SecurityException: Permission Denial: starting Intent {...); signature:这种权限级别,只有当发请求的应用和接收此请求的应用使用同一签名文件,并且声明了该权限才会授权,并且是默认授权,不会提示用户授权 signatureOrSystem:这种权限应该尽量避免使用...,偏向系统级,同一签名或系统级 activity导出-拒绝服务 如果intent传入空的,类型错误的等数据,导致activity报错,就存在拒绝服务漏洞 activity拒绝服务 activity

    1.2K20

    为你的APK进行数字签名

    所有 Android包(APK)文件在部署之前都需要被数字签名,Android使用一个已有的密钥签发调试用的 APK。你可以使用 Java提供的 keytool命令来查看。...默认情况下,调试用的密钥存储库在你的用户目录下的 .Android子目录下面。默认的名字叫作 debug.keystore,并且其密码是 Android。下面示例显示了怎么列举默认的证书。 示例....这个密钥库中有一个自签名的证书,别名为 Androiddebugkey,当 APK被部署到连接的设备或者模拟器上时,其被用于签名调试用的 APK。...为了重设调试用的密钥库,简单地删除 debug.keystore文件,下次部署 app时会重新创建。 你不能部署一个发布版本的 app除非你对其签名了,意味着生成一个发布用的密钥。...如果丢了,你将不能发布任何关于你的 app的更新,因为所有的版本都必须要用同样的密钥签名。

    68310

    Android 简谈安全那点事

    应用加固(应用安全): 应用加固包括,防注入、防纂改、反调试,病毒扫描(云扫描); 防注入: 注入就是指的当前APP进程呗其他程序使用特定的方法(ptrce,Dlopen等)插入不属于当前APP 的模块...,这些模板一般都是具有特殊的行为, 如收集App的隐私数据, 使用Hook等方法劫持app的正常运行流程等,其中Hook是最主要的安全风险。...反篡改: 传统判断app是否盗版的方法, 业界惯用的做法是事先收集大量的正版应用信息去做白名单,然后利用当前app的包名、签名等信息去做匹配, 该方法的准确度依赖于白名单库的大小,并且需要网络连接,但是现在我了解到一种新型的防纂改...反调试: 调试指的就是当前的app被其他程序使用特定的方法(调试器,ptrace )跟踪劫持,被调试后的app的一切行为都可以被其他程序查看和修改,大家可以联想一下平时通过gdb调试程序。...防止重打包; 每一个apk都会有个签名,签名只有这个开发者才拥有,如果别人修改了代码,也必须要签名才能运行,但是修改者的签名与官方签名是不一致的,我们在so里面存储了应用程序官方签名的hashcode值

    24210

    Android APK编译流程

    APK 打包器使用调试或发布密钥库为 APK 签名: 3.1. 如果您构建的是调试版应用(即专用于测试和分析的应用),则打包器会使用调试密钥库为应用签名。...Android Studio 会自动使用调试密钥库配置新项目。 3.2. 如果您构建的是打算对外发布的发布版应用,则打包器会使用发布密钥库为应用签名。 4....系统资源包是ox01,SharedLibrary类型资源包是0x00, 普通App包则是0x7f; // 次一位字节01表示typeID,用来表示资源类型,如drawable、layouts、anims...得到一个签名后的apk(signed.apk) apksigner 是google 退出的V2签名方式 Jarsigner 是之前一直使用的V1签名方式 可以通过在命令行中输入apksigner --...(对齐) release mode 下使用 aipalign进行align,即对签名后的apk进行对齐处理 所谓对齐,主要过程是将APK包中所有的资源文件距离文件起始偏移为4字节整数倍,这样通过内存映射访问

    2K20

    认识并理解 JSON Web Tokens (JWT)

    在此文章中,我们将深入了解 JWT 的工作原理,并使用 Go 语言来演示其应用。...声明是关于实体(通常是用户)和其他数据的陈述。 Signature:签名是由 header、payload、一个密钥和 header 中指定的算法生成的。它用于验证消息的完整性。...每一部分都是通过 Base64Url 编码的,这样可以方便地在网络上发送。 使用 Go 创建 JWT 首先,你需要安装 JWT 的 Go 包。...().Add(time.Hour * 24).Unix(), // 设置过期时间 Issuer: "test", }) // 使用指定的密钥签名令牌并生成一个编码的字符串 tokenString...在实际的应用中,你需要注意保护签名密钥,防止它们被泄露,同时也需要注意设置和验证令牌的过期时间,以防止旧的令牌被重新使用。

    23720

    百步穿杨-看我如何在APP中getshell

    如下: 由于请求和响应数据包都进行了加密,并且使用同样的数据进行请求的时候,每次密文都不一样,很显然,数据加密密钥是动态变化的。此处的阻碍让我有点方了。...服务端先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息。 但是,抓包过程中发现,它首先有一个从服务端获取密钥的过程。发现每次请求前,客户端都要向服务端发送请求,获取Key。...我们通过脱壳、反编译,拿到了java core代码,成功破解了数据包加解密逻辑。接下来可以进行漏洞挖掘。但是在客户端安全方面,上述过程还可能会遇到反调试、反HOOK、完整性校验、重签名检测等威胁。...并且在传递过程中,对数据使用非对称算法进行签名验签,避免数据在传输过程中被篡改。 应用调试:在应用逆向分析的过程中是静态分析与动态调试相结合的,其中静态分析就是上面所说的代码反编译。...应用调试就是动态分析的一种重要的方式,这里主要是基于无源码进行调试,这里分为SO调试与smali调试,其中SO调试主要使用的是GDB、LLDB、IDA pro等工具,调试smali使用的是IDEA、AndroidStudio

    62730

    安卓应用安全指南 5.3.3 将内部账户添加到账户管理器 高级话题

    表 5.3-1 账户管理器的函数以及权限 账户管理器提供的函数 权限 方法 AUTHENTICATE_ACCOUNTS(只有由认证器的相同密钥签名的软件包才可以使用。)...AUTHENTICATE_ACCOUNTS权限的方法组的情况下,存在软件包的签名密钥以及权限相关的限制。...具体来说,提供认证器的包的签名密钥,和使用方法的应用的包的签名密钥应该是相同的。...在 Android Studio 的开发阶段,由于固定的调试密钥库可能会被某些 Android Studio 项目共享,开发人员可能只考虑权限而不考虑签名,来实现和测试帐户管理器。...特别是,对于对每个应用使用不同签名密钥的开发人员来说,因为这种限制,在选择用于应用的密钥时要非常小心。

    69710

    Android应用apk的程序签名

    这条规则适用于任何运行Android系统的地方,不管是真机还是模拟器。因此必须在模拟器或真机上运行/调试程序之前对程序进行签名。 可以使用自己的证书来签名。不需要任何授权中心。...可以使用标准工具——Keytool和Jarsigner生成Key并签名apk文件。 一旦为应用程序签名了,一定要使用zipalign工具来优化最终的APK包。...然后这个Debug key会自动用于apk的签名,这样就不需要手动为应用程序包签名了。...运行或是调试应用程序 时,ADT会使用Debug证书进行签名,并运行zipalign,然后安装到选择的模拟器或是已连接的设备。整个过程不需要人工干预。...Release模式下签名 应用程序准备发布给其它用户时,需要: 获取一个合适的密钥 在Release模式下编译程序 使用密钥签名程序 对齐APK包 如果使用Eclipse ADT插件开发,可以使用导出向导来完成编译

    1.9K10

    rk-bootv2: 使用腾讯云 KMS 进行 JWT 验证 (Golang)

    JSON 网络令牌是一种 Internet 标准,用于创建具有可选签名或可选加密的数据,让两方之间安全地表示声明。令牌使用私有秘密或公共/私有密钥进行签名。...2.生成云访问密钥 & 创建 KMS 密钥 想要通过代码使用云上的资源,就需要使用到云访问密钥,一般称为 AK/SK,根据下面的文档生成密钥,并且保存,切记不要泄漏这个密钥。...生成云访问密钥 然后,我们就可以登陆控制台,创建用于签名的 RSA 非对称密钥了。腾讯云提供了标准版 & 旗舰版 KMS,旗舰版更安全,就是贵,中小项目使用标准版即可。...# 腾讯云 KMS 控制台里创建的 KMS 密钥 ID 5.写两个 API 生成 JWT Token 的时候,rk-boot/v2 会远程调用 KMS API 获取签名。...Go版本的 Spring boot,也类似 Go 进程启动器。

    1.6K10

    Android签名校验机制(数字证书)

    这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。...签名的两种模式 调试模式(debug mode) 在调试模式下,ADT会自动的使用debug密钥为应用程序签名,因此我们可以直接运行程序。...发布模式(release mode) 发布程序时,开发者需要使用自己的数字证书给apk包签名。使用自己的数字证书给APK签名有两种方法。将在下文描述。...invalid entry compressed size (expected 19384 but got 19942 bytes) 出现该错误的原因是因为对一个已经使用DEBUG权限的数字签名的包...,使用jarsigner再次签名导致的,建议用V2重新签名或者导出一个未签名的apk重新签名即可,如果一定要对当前包重新签名,可以选择将文件修改为.zip后缀,然后解压缩,删除META-INF目录,然后再次压缩为

    6.7K110

    .Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译

    apk(android package)就是我们安卓系统的安装文件,可以在模拟器和手机中直接打开安装,从项目中打包apk有几种方式可取 一、最简单的方法(类似我们的winfrom) 只要我们调试或者运行过项目...没有签名会被人家的apk替换 二、签名发布 1.签名的意义   为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序 我们需要对我们发布的...2.签名的步骤   a.创建key   b.使用步骤a中产生的key对apk签名 我们直接来看Android Studio怎么打包一个签名的APK,可能和Eclipse有点区别 (1)Android Studio...转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。...运行JD-GUI(jd-gui.exe),打开上面生成的jar包,即可看到源代码了 ?

    918100
    领券