如果你的Android 应用不只在中国运营,还想国际化,比如服务一下美帝人民,那上Google Play是必须的。这里记录下
必要的准备
- 一个Gmail帐号,Google Play Console 登录只接受Google帐号
- 一张支持境外支付的信用卡(visa/mastercard),注册需要支付$25
- 文档理解-Android APP bundle
- 文档理解-APP Signing
软件著作权(不需要)
帐号注册
这个流程需要自带梯子,注册地址,按提示走一般没啥幺蛾子
App Bundle
Android生态过了10年,系统碎片化严重,应用越来越大。Google终于决定要有所改变了,在2018年中推出了Android App Bundle这个新的文件格式。期望来达到三个目的:1,动态分发,服务器根据用户机型动态下发对应资源的APK,减少应用包体积(落后iOS N年);2,动态功能模块,比如支付,播放这种功能可以在使用时候动态加载;3,应用安全,集成App signing,保证APP安装和升级的合法性。使用也比较简单
- 需要Android Studio 3.2+,命令行可以使用bundletool
- 添加Dynamic Delivery支持
- 用AS打一个Android APP bundle文件,在AS工具栏选build,选build bundles,文件格式是.aab
- 测试aab bundle文件
- 上传到Google play签名
一个20M的测试apk,使用app bundle经过google play下发到用户手机只有6m左右,美滋滋。
App signing
相对于apk,App Bundle的aab是一种新的上传文件格式,必须搭配App signing一起使用。Google Play来管理和保护你的应用签名密钥,并使用它来签名apk以进行动态分发。
怎么工作?
应用密钥储存在Google的无差别基建服务中,并提供安全可靠行保证。使用密钥签名生成aab文件,aab上传Google Play会校验公共证书是不是来自于受信任的来源(同一个)。
Upload key?
这个是可选的,就是多生成一个Java keystore,用来区别应用打包签名的keystore。它只用在上传aab文件时做合法性校验。如果App Signing选择了Google自动生成私钥,那这个upload key会是第一次上传文件时的签名keystore。
祖传的签名key能用?
可以,在开启App signing服务时选择上次祖传的私有keystore,然后新建一个keystore用来作为Upload key。
各种key 相关概念
Term | Description |
---|---|
App signing | Google Play使用这个key来签名分发给用户的apk,使用app sign服务时google会帮你创建一个,当然也可以上传一个已有的。一个应用只能被签名一次。 |
Upload key | 用来保障aab上传文件的合法性和安全性,强烈推荐新建一个,不要和sign key用同一个。 |
Certificate (.der or .pem ) | 一个证书包含了公钥和谁拥有密钥的额外识别信息 |
Certificate fingerprint | 证书的简短表示,一般有MD5,SHA-1,SHA-265 |
Java keystore (.jks or .keystore ) | 储存安全证书和私钥的文件 |
Play Encrypt Private Key (PEPK) tool | 一种从Java密钥库导出私钥并加密它们以便传输到Google Play的工具。 |
参考
developer.android.com/guide/app-b…
support.google.com/googleplay/…