有个做工具类 App 的朋友,前阵子被商店通知要求「完成应用备案」才给上架。他对着后台那串要填的字段发懵——公钥、SHA-1、MD5,后面还跟着一长串看着像乱码的东西。他以为是要写代码算出来的,结果卡了整整一个下午。
这事其实不少见。安卓应用备案这几年成了上架的固定门槛,可很多人第一次撞上,都是懵的。今天就把这几个字段到底从哪拿、怎么填,说清楚。
先说一句大实话:那串看着吓人的「公钥」,不是你手写出来的,是从你的安装包里提取出来的。
你现在手里这个能装到手机上的 apk 或 aab 包,本身就带着一个签名证书。开发的时候,打包工具会拿这个证书给包「盖个章」,证明这包是你出的。公钥就是这把章上的纹路,SHA-1、MD5 则是这把章的指纹,是用固定算法算出来的短串。备案要填的,就是这三个。
所以方向别搞反了——不是先有公钥再去改包,而是包已经好了,从包里把这三样扒出来。
那到底从哪扒?分三种情况,看你手边有什么。
第一种,你有安装包。这是最省事的。安卓官方有现成的命令工具,keytool 一条命令就能把签名证书里的 SHA-1、MD5 读出来,公钥也能一并导出。你只要把命令对准那个签名文件或者包本身跑一下,结果就出来了,不用碰任何代码。
第二种,你有源码和 keystore。也就是你自己从零开发的,签名文件(.jks 或 .keystore)就在你电脑里。同样用 keytool,把密钥库路径指过去,输入你当初设的那个密码,SHA-1、MD5 秒出。
第三种,你啥都没有,只有一个别人交付给你的包。比如外包团队只发回一个 apk,没给签名文件。这时候也能办——从包里的签名信息照样能读出 SHA-1 和 MD5,只是公钥那步会稍微绕一点,因为公钥藏在证书里,得先取出证书再导公钥。费点事,但不是死路。
这里有个特别容易踩的坑,我得单独拎出来说:备案填的公钥、SHA-1,必须和你最终上传商店的那个包,是同一套。
什么意思?假设你拿测试包的签名去填了备案,结果上线前又换了个新签名重新打包,那备案填的和实际传的包就对不上了,审核一看对不上,直接打回让你重来。这种「填的时候和传的时候不是同一个包」的低级错误,返工起来特别冤。
所以顺序要记牢:先定稿那个最终要上架的包,再从这个包里取公钥和指纹去备案。别先急着备案、后面又改包。
还有个细节:MD5 现在有些平台已经不让用了,慢慢在退出。但备案字段里如果还留着这一栏,就照着填,别自作主张留空。该填的填,省得被系统拦下来问你为什么空着。
再补一句关于「公钥」本身。有人看到字段叫公钥,以为是要上传一个文件,其实很多平台要的是一串 base64 编码的字符串,就是证书里那把公开密钥用固定格式转出来的长文本。它往往特别长,复制的时候别漏行、别多空格,前后括号也别删。填错了,系统校验对不上,又是一次返工。
还有个小提醒:备案信息一般不是填一次就一劳永逸。以后你给 App 换签名、换证书重新打包,公钥和指纹就跟着变了,得重新备案、重新提交。所以每次改签名,脑子里都要多带一根弦——备案那边是不是也该更新了。
把这几步理顺之后,你会发现备案本身不复杂,麻烦的是「第一次不知道从哪下手」。真正费时间的,往往是那种自己一个人对着命令试来试去,报错了不知道问谁的时刻。
如果你手上没包、没源码,或者就是不想碰命令行,也可以把这些交给别人做。初雪云有一项 App 协助备案服务,就是帮你处理公钥、SHA-1 这些备案信息,一次 200 元。你只要把包或者账号权限给到,剩下的核对、提取、填写由专人弄完,适合没时间折腾命令的人。
不过我得说句实在话:不管是自己查还是找人办,那个「包要和备案信息对得上」的原则,到哪都一样,谁来都得守。服务只是帮你省掉扒命令、填字段的力气,不改变这个前提。
最后给个行动建议。如果你正准备上架安卓应用,现在就可以做三件事:第一,确认你要上架的最终包是哪一个;第二,从这个包里把公钥、SHA-1 取出来存好;第三,去备案平台把这几样照着填上。顺序别乱,基本就不会在备案这步卡住。
备案这事,说白了就是「交对那串指纹」。看着吓人,摸清从哪拿之后,十分钟的事。