Android应用程序在Google Play上正式发布

文章目录

  • 说明
  • 1.注册开发者账户
    • 1.1 打开 https://play.google.com/console 会直接重定向到https://play.google.com/console/signup
    • 1.2 换一个google账户后,打开 https://play.google.com/console 也会直接重定向到https://play.google.com/console/signup,但是页面不一样,需要开启两步验证
  • 2.创建应用
  • 3.应用创建后的信息中心

    3.1 立即开始测试

    如果使用自建签名,则需要更改应用签名密钥
    aab打包
    aab转apks
    aab转apks
    设备安装apks
    问题
    上传aab到Google Play
    错误1:您的应用所用的 APK(版本代码:1)会请求以下权限:android.permission.CAMERA, android.permission.RECORD_AUDIO, android.permission.READ_PHONE_STATE。对于在 APK 中使用这些权限的应用,您必须设置隐私权政策。
    错误2:此版本含有尚未在 Play 管理中心内声明的权限。请转到“敏感的应用权限”,更新您的权限声明。
    所有文件访问权限(不具有普适性,针对具体apk)
    软件包安装请求权限(不具有普适性,针对具体apk)
    内部测试版本下载

    Google Play官方提供了详细的指导,您可以在以下链接中找到:
    [https://support.google.com/googleplay/android-developer/answer/9859152?hl=zh-Hans]

    1.注册开发者账户

    在浏览器登录Google账户后,如果您尚未拥有开发者账户,则需要注册一个。但如果您已经拥有开发者账户,则可以跳过此步骤。

    1.1 打开 https://play.google.com/console 会直接重定向到https://play.google.com/console/signup

    提示需要注册开发者账户,个人还是单位?
    在这里插入图片描述

    选择个人
    在这里插入图片描述

    在这里插入图片描述

    有三项是必填
    在这里插入图片描述

    改成单位开发者账户
    在这里插入图片描述

    在这里插入图片描述

    1.2 换一个google账户后,打开 https://play.google.com/console 也会直接重定向到https://play.google.com/console/signup,但是页面不一样,需要开启两步验证

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    输入密码后,点击下一步
    在这里插入图片描述
    输入手机号,下一步
    在这里插入图片描述
    输入验证码,下一步
    在这里插入图片描述

    开启

    在这里插入图片描述
    手动关闭该页面,输入https://play.google.com/console,还是会跳到https://play.google.com/console/signup页面
    在这里插入图片描述

    在填写各种开发者(无论是个人还是单位)的信息之后

    请重新访问Google Play控制台,网址为https://play.google.com/console。

    在这里插入图片描述
    成功进入Play控制台

    2.创建应用

    在这里插入图片描述

    点击创建应用
    在这里插入图片描述

    在这里插入图片描述

    点击创建应用

    3.应用创建后的信息中心

    总共分成三大块

    立即开始测试
    设置应用
    发布应用
    在这里插入图片描述
    在这里插入图片描述

    3.1 立即开始测试

    在这里插入图片描述
    点击 “创建新版本”

    在这里插入图片描述
    点击“创建新的发布版本”

    在这里插入图片描述
    在这里插入图片描述

    如果使用自建签名,则需要更改应用签名密钥

    点击“更改应用签名密钥”,会弹框提示
    在这里插入图片描述
    选择使用其他密钥
    有四个选项

    在这里插入图片描述
    在这里插入图片描述
    此处选择“从 Java 密钥库导出并上传密钥”
    1.下载 Play Encrypt Private Key (PEPK) 工具。下载源代码
    2.使用下面的命令运行该工具,导出您的私钥并将其加密。然后替换相应参数,在看到提示时分别输入密钥库和密钥的密码。

    使用以下命令将apk打包,并替换密钥文件名称为xxx.jks,别名为xxx.jks中的keyAlias:
    ```
    $ java -jar pepk.jar --keystore=xxx.jks --alias=keyAlias --output=output.zip --include-cert --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a
    ```

    3.上传生成的zip文件

    为了增强安全性,请生成一个新的上传密钥(可选)。隐藏说明展开 创建一个新的上传密钥,并使用该密钥对应用的每个版本进行签名,而不是使用应用签名密钥进行签名。如果您丢失了上传密钥或者遭到盗窃,可以重置上传密钥并开始使用新的密钥。

    请生成新的上传密钥。详细了解方法,请使用以下命令以 PEM 文件格式导出上传密钥证书。请将粗体参数替换为实际值。
    $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem

    此处暂时没有创建所谓的“上传密钥”了,点击保存后,回到主页
    在这里插入图片描述
    自己上传的密钥生效了

    上传app bundle,注意这里只能上传aab文件,不支持上传apk?????
    在这里插入图片描述
    这里需要重新打包aab

    aab打包

    在这里插入图片描述
    不是上述路径,而是

    在这里插入图片描述

    在这里插入图片描述
    注意这里“Export encrypted key for enrolling published apps in Google Play App Signing”,默认勾选,暂时没有用到

    在这里插入图片描述
    成功生成了aab

    aab转apks

    aab转apks

    请参考以下命令格式:

    请运行以下命令:java -jar <bundletool.jar的路径> build-apks --bundle=<.aab文件的路径> --output=<输出.apks的路径> --ks=<打包使用的证书文件的路径> --ks-pass="pass:<证书密码>" --ks-key-alias=<证书别名>",然后输入--key-pass=pass:<>。如果您在本机运行时遇到错误,请检查命令中填写的文件路径是否正确。
    [BT:1.13.2] 错误:从密钥库加载私钥和证书时出错。com.android.tools.build.bundletool.model.exceptions.CommandExecutionException: 从密钥库加载私钥和证书时出错。        at com.android.tools.build.bundletool.model.exceptions.InternalExceptionBuilder.build(InternalExceptionBuilder.java:57)        at com.android.tools.build.bundletool.model.SignerConfig.extractFromKeystore(SignerConfig.java:180)        at com.android.tools.build.bundletool.commands.BuildApksCommand.populateSigningConfigurationFromFlags(BuildApksCommand.java:1685)        at com.android.tools.build.bundletool.commands.BuildApksCommand.fromFlags(BuildApksCommand.java:777)        at com.android.tools.build.bundletool.commands.BuildApksCommand.fromFlags(BuildApksCommand.java:743)        at com.android.tools.build.bundletool.BundleToolMain.main(BundleT
    设备安装apks

    请参考以下命令格式:

    请使用以下命令来安装.apks文件:java -jar <bundletool.jar的路径> install-apks --apks=<上一步中生成的.apks文件路径>。请注意,由于本机使用的是bundletool-all-1.13.2.jar,因此需要使用jdk11启动jvm。

    当本机开始运行时,会出现以下提示信息

    APK文件已经提取到目录:C:\Users\Administrator\AppData\Local\Temp\9626548363570726817。安装完成。
    问题

    如果您的应用面向海外市场,我们建议优先使用Google Play市场发布应用。因此,aab格式是首选。但是,如何方便地进行机器测试aab呢?难道每次都需要手动运行这个jar程序两次吗?

    请参考以下链接获取更多信息: – [https://copyfuture.com/blogs-details/202207120550060058](https://copyfuture.com/blogs-details/202207120550060058) – [https://baijiahao.baidu.com/s?id=1739494345616322323&wfr=spider&for=pc](https://baijiahao.baidu.com/s?id=1739494345616322323&wfr=spider&for=pc)

    上传aab到Google Play

    上传上一步生成的aab文件到Google Play Console
    在这里插入图片描述
    提示我aab使用的target api level为30,低于31了,需要修改为至少31

    修改方案是将项目的compileSdkVersion版本更改为31,然而项目中的compileSdkVersion仍保持30。这样做是否会产生问题尚待进一步研究,非常重要!!!

    重新编译后上传,还是上传失败
    在这里插入图片描述
    多了一个问题,提到了android;exported=false
    官方指南 https://developer.android.com/about/versions/12/behavior-changes-12#exported

    修改后,继续上传,还是报错
    在这里插入图片描述
    尝试在GooglePlay应用商店去寻找这个包名的应用,没找到,经查询可能是已经下架的app曾经占用过这个包名
    于是针对在GooglePlay市场发布的版本专门去更改包名
    重新打包后上传,不报错了

    点击右下角“检查发布内部测试”,有提示报错
    在这里插入图片描述

    错误1:您的应用所用的 APK(版本代码:1)会请求以下权限:android.permission.CAMERA, android.permission.RECORD_AUDIO, android.permission.READ_PHONE_STATE。对于在 APK 中使用这些权限的应用,您必须设置隐私权政策。

    怎么设置隐私权政策?
    入口在
    在这里插入图片描述
    在这里插入图片描述
    需要有自己的网页!

    错误2:此版本含有尚未在 Play 管理中心内声明的权限。请转到“敏感的应用权限”,更新您的权限声明

    在这里插入图片描述
    在这里插入图片描述
    尝试选择第一个

    在Google Play控制台上,会对上传的APK进行检测。针对当前的APK,系统会分析其具体的敏感权限,并给出相应结果。

    这时候回到“当前应用”内部测试“-》”检查并发布版本“-》还是选择第二个错误 转到”敏感的应用权限“,点击
    在这里插入图片描述

    所有文件访问权限(不具有普适性,针对具体apk)

    点击”开始“
    在这里插入图片描述
    在这里插入图片描述
    这个所有文件访问权限其实是android.permission.MANAGE_EXTERNAL_STORAGE,api level30上新增的
    在这里插入图片描述
    而项目AndroidManifest.xml中的确有声明

    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />解决方案:貌似这个权限针对该项目没什么特别作用,先删除看看
    软件包安装请求权限(不具有普适性,针对具体apk)

    在这里插入图片描述
    在这里插入图片描述
    REQUEST_INSTALL_PACKAGES 是api level 23 新增的
    MANAGE_EXTERNAL_STORAGE
    而项目AndroidManifest.xml中的确有声明

    修改如下:
    解决方案:看起来这个权限对于该项目似乎没有特别的作用,建议先删除该权限并观察效果。

    两个问题都解决后,上传报错直接提示需要提供隐私权政策
    在这里插入图片描述
    回到之前的隐私权政策页面,输入app隐私权政策对应网址保存,然后继续重新上传包,成功

    内部测试版本下载

    控制台首页选择该应用,右侧选择“内部测试”,目前处于尚未审核状态(后续公开发布需要填写app所有信息并且审核通过才行),并且会有一个临时应用名称unreviewed,但是有相关测试人员提供的下载链接
    在这里插入图片描述

    请在“测试用户数量”选项卡中查看并切换至下载链接。在输入相关测试人员的邮箱后,您将在底部找到可供下载的链接。点击复制即可使用。请注意,此下载链接将跳转至Google Play商店。如果您登录的Google账户与测试人员邮箱不匹配,则无法进行下载操作。

    在这里插入图片描述

    如点击链接后,跳转
    在这里插入图片描述
    点击download,跳转到google play商店下载

    3.2 设置应用(如果只是百人内测,后续步骤即使不做也可以,但是如果要公开发布,从这里就要开始做,目标为了应用审核通过,不然包名始终是unreviewed)

    在这里插入图片描述

    设置隐私权政策

    已经进行了设置,可以选择跳过。

    应用访问权限

    已经进行了设置,可以选择跳过。

    广告

    在这里插入图片描述
    选择否

    内容分级

    在这里插入图片描述

    点击”开始填写”
    在这里插入图片描述
    点击“下一步”

    在这里插入图片描述

    在这里插入图片描述

    点击“保存”、“下一步”

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    直接点击“提交”

    目标受众群体

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    点击“保存”

    新闻应用

    在这里插入图片描述

    新冠肺炎 (COVID-19) 接触者追踪应用和感染状况应用

    在这里插入图片描述

    数据安全(这是技术需要关注的重点!!!)

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    之前已经注意到该应用程序申请了以下权限:摄像头拍照权限、录音权限以及读取设备状态权限。

    而这些权限都是由Google Play定义的,需要进行解释。

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    这里只选择了“拍照”、“录音”,点击“下一步”
    拍照权限说明
    在这里插入图片描述
    在这里插入图片描述

    点击“保存”

    录音权限说明
    在这里插入图片描述

    在这里插入图片描述
    点击“保存”

    在这里插入图片描述

    在这里插入图片描述
    点击“提交”

    政府应用

    在这里插入图片描述

    选择应用类别并提供详细联系信息

    在这里插入图片描述

    在这里插入图片描述
    填写完所有信息后点击“保存”

    设置商品详情

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    上传完应用图标、置顶大图、效果图(手机、平板1.0寸、平板10.0寸)后,点击“保存”

    至此,静静等待审核吧~

    3.3.当然在发布正式版之前,需要看下发布前测试报告(因为之前有发布过内部测试版本,默认发布完内部测试版本后,google play自动会进行测试并生成发布前测试报告)

    在这里插入图片描述
    可以看出问题挺多
    这7台机器是谁测试的?play商店自动测试????

    回答:确实是Play商店自己安排的测试。你可以在官方网站上找到更多信息,链接为https://support.google.com/googleplay/android-developer/answer/9842757?hl=zh-Hans。

    在这里插入图片描述

    先挑错误看

    请注意,这里的错误并非是由于app本身运行报错,而是因为平台考虑到安全性等因素,强制对上架的app添加了限制要求。

    错误1:安全性问题-不安全的加密模式

    在这里插入图片描述

    在这里插入图片描述

    发现加密模式存在安全隐患,请点击此处了解更多信息:https://support.google.com/faqs/answer/9450925

    在这里插入图片描述

    而我们去看下项目依赖的三方库com.geetest.sensebot:sensebot:4.3.0
    在这里插入图片描述

    修改方案:

    尽管添加了依赖库,但从未使用过其中的相关API。因此,我们决定直接删除该依赖库并重新打包项目。

    解决完所有错误后

    重新打包,发布新的内部测试版本

    打包上传完新的aab后,回到控制台-你的应用,查看发布前测试报告,可以看到,有提示“正在测试。测试过程通常需要 1 小时左右,但也可能会用更长时间。”
    在这里插入图片描述

    安静等待测试报告吧

    3.4.发布(这里特指正式版)

    创建正式版本

    在这里插入图片描述
    点击“创建新的发布版本”

    在这里插入图片描述

    错误:无法上传aab,提示“已有版本使用版本号xxx”

    在这里插入图片描述
    因为每次发布内部测试包的时候,google play都会存储包到内容库,点击上传新的aab,会对比内容库中包的版本号是否已经存在,存在则不允许上传,这时候可以点击“从内容库添加”
    在这里插入图片描述

    选择之前测试没问题的包,点击“添加到版本”即可
    在这里插入图片描述
    上传成功后,需要仔细填写版本说明,不同语言版本的,因为这是真实展示在play商店让用户看到的,不比内部测试版本,这里是针对全部用户开放的,必须仔细慎重

    在这里插入图片描述
    填写完毕后,点击右下角“检查发布版本”

    发起审核(竟然不是发布后自动审核)

    选择左侧菜单栏”Production“
    在这里插入图片描述
    或者选择左侧菜单栏”Dashboard“

    在这里插入图片描述

    两个都可以

    点击“前往发布概览”

    在这里插入图片描述

    请点击“发送修改内容以供审查”

    在这里插入图片描述
    二次确认,提示审核最多需要7天,点击确认

    等待审核完成

    在返回“仪表盘”后,您将能够查看当前处于审核中的状态,并且最长等待时间为7天。

    在这里插入图片描述

    3.5 技巧

    如果在发布内测包后出现测试问题,需要上传修复后的新内测包,但要求不更改版本号。之前只允许进行一次修改,因此必须升级版本号。这种限制有些不太方便。

    在这里插入图片描述
    在这里插入图片描述
    点击暂停测试,然后回到app bundle explorer中删除(经过验证,也找不到删除按钮,所以即使发布的内测包也删除不了?了??? 该方案失败)

    
    

发表评论

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