Android Google Play 上车指南

如果你的Android 应用不只在中国运营,还想国际化,比如服务一下美帝人民,那上Google Play是必须的。这里记录下

必要的准备

  • 一个Gmail帐号,Google Play Console 登录只接受Google帐号
  • 一张支持境外支付的信用卡(visa/mastercard),注册需要支付$25
  • 文档理解-Android APP bundle
  • 文档理解-APP Signing
  • 软件著作权(不需要)

帐号注册

这个流程需要自带梯子,注册地址,按提示走一般没啥幺蛾子

image-20190811144655052

App Bundle

Android生态过了10年,系统碎片化严重,应用越来越大。Google终于决定要有所改变了,在2018年中推出了Android App Bundle这个新的文件格式。期望来达到三个目的:1,动态分发,服务器根据用户机型动态下发对应资源的APK,减少应用包体积(落后iOS N年);2,动态功能模块,比如支付,播放这种功能可以在使用时候动态加载;3,应用安全,集成App signing,保证APP安装和升级的合法性。使用也比较简单

一个20M的测试apk,使用app bundle经过google play下发到用户手机只有6m左右,美滋滋。

image-20190811173949372

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的工具。

参考

https://developer.android.com/guide/app-bundle

https://support.google.com/googleplay/android-developer/answer/9006925?hl=en

https://support.google.com/googleplay/android-developer/answer/7384423

https://medium.com/googleplaydev/what-a-new-publishing-format-means-for-the-future-of-android-2e34981793a