文章目录
- 说明
- 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?????
这里需要重新打包aabaab打包
不是上述路径,而是
注意这里“Export encrypted key for enrolling published apps in Google Play App Signing”,默认勾选,暂时没有用到
成功生成了aabaab转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 新增的
而项目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中删除(经过验证,也找不到删除按钮,所以即使发布的内测包也删除不了?了??? 该方案失败)
还木有评论哦,快来抢沙发吧~