說明
本博文只是簡單記錄使用流程
操作時間是2023.1.12日,后續(xù)查看該博文,可能會發(fā)現(xiàn)因為Google Play Console版本升級帶來操作使用上的差異
google play官方指導(dǎo)
https://support.google.com/googleplay/android-developer/answer/9859152?hl=zh-Hans]
1.注冊開發(fā)者賬戶
瀏覽器登錄google賬戶后,如果沒有開發(fā)者賬戶,則需要注冊開發(fā)者賬戶,如果有則跳過該步驟
1.1 打開 https://play.google.com/console 會直接重定向到https://play.google.com/console/signup
提示需要注冊開發(fā)者賬戶,個人還是單位?
選擇個人
有三項是必填
改成單位開發(fā)者賬戶
1.2 換一個google賬戶后,打開 https://play.google.com/console 也會直接重定向到https://play.google.com/console/signup,但是頁面不一樣,需要開啟兩步驗證
輸入密碼后,點(diǎn)擊下一步
輸入手機(jī)號,下一步
輸入驗證碼,下一步
開啟
手動關(guān)閉該頁面,輸入https://play.google.com/console,還是會跳到https://play.google.com/console/signup頁面
填寫各種開發(fā)者(個人或者單位)信息后
再次進(jìn)入Google Play控制臺 https://play.google.com/console
成功進(jìn)入Play控制臺
2.創(chuàng)建應(yīng)用
點(diǎn)擊創(chuàng)建應(yīng)用
點(diǎn)擊創(chuàng)建應(yīng)用
3.應(yīng)用創(chuàng)建后的信息中心
總共分成三大塊
立即開始測試
設(shè)置應(yīng)用
發(fā)布應(yīng)用
3.1 立即開始測試
點(diǎn)擊 “創(chuàng)建新版本”
點(diǎn)擊“創(chuàng)建新的發(fā)布版本”
如果使用自建簽名,則需要更改應(yīng)用簽名密鑰
點(diǎn)擊“更改應(yīng)用簽名密鑰”,會彈框提示
選擇使用其他密鑰
有四個選項
此處選擇“從 Java 密鑰庫導(dǎo)出并上傳密鑰”
1.下載 Play Encrypt Private Key (PEPK) 工具。下載源代碼
2.使用下面的命令運(yùn)行該工具,導(dǎo)出您的私鑰并將其加密。然后替換相應(yīng)參數(shù),在看到提示時分別輸入密鑰庫和密鑰的密碼。
$ java -jar pepk.jar --keystore=foo.keystore --alias=foo --output=output.zip --include-cert --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a
按照流程把a(bǔ)pk打包使用的密鑰文件xxx.jks替換名稱foo.keystore,alias也換成xxx.jks中的keyAlias
3.上傳生成的zip文件
4.為了提高安全性,請創(chuàng)建新的上傳密鑰(可選)。
隱藏說明
expand_less
創(chuàng)建新的上傳密鑰,然后使用該密鑰為應(yīng)用的每個版本簽名,而不使用應(yīng)用簽名密鑰來簽名。如果您丟失了上傳密鑰或者密鑰被盜,可以重置上傳密鑰,然后開始使用新密鑰。
生成新的上傳密鑰。了解詳情
使用下方的命令以 PEM 文件格式導(dǎo)出上傳密鑰證書。請?zhí)鎿Q以粗體顯示的參數(shù)。
$ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
此處暫時沒有創(chuàng)建所謂的“上傳密鑰”了,點(diǎn)擊保存后,回到主頁
自己上傳的密鑰生效了
上傳app bundle,注意這里只能上傳aab文件,不支持上傳apk?????
這里需要重新打包aab
aab打包
不是上述路徑,而是
注意這里“Export encrypted key for enrolling published apps in Google Play App Signing”,默認(rèn)勾選,暫時沒有用到
成功生成了aab
aab轉(zhuǎn)apks
aab轉(zhuǎn)apks
命令格式參考如下:
java -jar <bundletool.jar的路徑> build-apks --bundle=<.aab文件的路徑>
--output=<輸出.apks的路徑> --ks=<打包使用的證書文件的路徑> --ks-pass=pass:<證書密碼> --ks-key-alias=<證書別名> --key-pass=pass:<證書別名密碼,通常與證書密碼一致>
但是本機(jī)運(yùn)行報錯
[BT:1.13.2] Error: Error while loading private key and certificates from the keystore.
com.android.tools.build.bundletool.model.exceptions.CommandExecutionException: Error while loading private key and certificates from the keystore.
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(BundleToolMain.java:82)
at com.android.tools.build.bundletool.BundleToolMain.main(BundleToolMain.java:54)
Caused by: java.io.IOException: Invalid keystore format
at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source)
at sun.security.provider.KeyStoreDelegator.engineLoad(Unknown Source)
at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at com.android.tools.build.bundletool.model.SignerConfig.extractFromKeystore(SignerConfig.java:133)
... 5 more
原因竟然是我使用的jar包是最新版bundletool-all-1.13.2.jar,估計是jdk11編譯的,所以運(yùn)行也需要jdk11,而報錯是因為默認(rèn)使用的jdk版本是java 8(之前系統(tǒng)配置了java 8環(huán)境變量),可惜,這個報錯提示不友好,郁悶很久!?。?!有的jar包運(yùn)行會提示版本不兼容
設(shè)備安裝apks
命令格式參考如下:
java -jar <bundletool.jar的路徑> install-apks --apks=<上一步中生成的.apks文件路徑>
本機(jī)因為bundletool-all-1.13.2.jar 所以還是需要使用jdk11啟動jvm
本機(jī)運(yùn)行后提示信息如下
The APKs have been extracted in the directory: C:\Users\Administrator\AppData\Local\Temp\9626548363570726817
安裝成功
問題
如果是面向海外的app,優(yōu)先使用Google Play市場發(fā)布應(yīng)用,所以aab是首選,但是怎么方便機(jī)器測試aab呢?每次都要主動運(yùn)行這個jar程序兩次??
參考
https://copyfuture.com/blogs-details/202207120550060058
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,會不會有問題呢?待后續(xù)研究,重點(diǎn)?。?!
重新編譯后上傳,還是上傳失敗
多了一個問題,提到了android;exported=false
官方指南 https://developer.android.com/about/versions/12/behavior-changes-12#exported
修改后,繼續(xù)上傳,還是報錯
嘗試在GooglePlay應(yīng)用商店去尋找這個包名的應(yīng)用,沒找到,經(jīng)查詢可能是已經(jīng)下架的app曾經(jīng)占用過這個包名
于是針對在GooglePlay市場發(fā)布的版本專門去更改包名
重新打包后上傳,不報錯了
點(diǎn)擊右下角“檢查發(fā)布內(nèi)部測試”,有提示報錯
錯誤1:您的應(yīng)用所用的 APK(版本代碼:1)會請求以下權(quán)限:android.permission.CAMERA, android.permission.RECORD_AUDIO, android.permission.READ_PHONE_STATE。對于在 APK 中使用這些權(quán)限的應(yīng)用,您必須設(shè)置隱私權(quán)政策。
怎么設(shè)置隱私權(quán)政策?
入口在
需要有自己的網(wǎng)頁!
錯誤2:此版本含有尚未在 Play 管理中心內(nèi)聲明的權(quán)限。請轉(zhuǎn)到“敏感的應(yīng)用權(quán)限”,更新您的權(quán)限聲明
嘗試選擇第一個
google play控制臺然后會檢測apk,針對當(dāng)前apk,分析具體apk的敏感權(quán)限,結(jié)果。。。
這時候回到“當(dāng)前應(yīng)用”內(nèi)部測試“-》”檢查并發(fā)布版本“-》還是選擇第二個錯誤 轉(zhuǎn)到”敏感的應(yīng)用權(quán)限“,點(diǎn)擊
所有文件訪問權(quán)限(不具有普適性,針對具體apk)
點(diǎn)擊”開始“
這個所有文件訪問權(quán)限其實(shí)是android.permission.MANAGE_EXTERNAL_STORAGE,api level30上新增的
而項目AndroidManifest.xml中的確有聲明
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
解決方案:貌似這個權(quán)限針對該項目沒什么特別作用,先刪除看看
軟件包安裝請求權(quán)限(不具有普適性,針對具體apk)
REQUEST_INSTALL_PACKAGES 是api level 23 新增的
而項目AndroidManifest.xml中的確有聲明
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
解決方案:貌似這個權(quán)限針對該項目沒什么特別作用,先刪除看看
兩個問題都解決后,上傳報錯直接提示需要提供隱私權(quán)政策
回到之前的隱私權(quán)政策頁面,輸入app隱私權(quán)政策對應(yīng)網(wǎng)址保存,然后繼續(xù)重新上傳包,成功
內(nèi)部測試版本下載
控制臺首頁選擇該應(yīng)用,右側(cè)選擇“內(nèi)部測試”,目前處于尚未審核狀態(tài)(后續(xù)公開發(fā)布需要填寫app所有信息并且審核通過才行),并且會有一個臨時應(yīng)用名稱unreviewed,但是有相關(guān)測試人員提供的下載鏈接
下載鏈接需要切換到tab頁面“測試用戶數(shù)量”查看,輸入相關(guān)測試人員的郵箱后,底部有提供下載鏈接,點(diǎn)擊復(fù)制即可,此下載鏈接會跳轉(zhuǎn)到google play商店,如果商店登錄google賬戶不是測試人員郵箱對應(yīng)的google賬戶,則無法下載???
如點(diǎn)擊鏈接后,跳轉(zhuǎn)
點(diǎn)擊download,跳轉(zhuǎn)到google play商店下載
3.2 設(shè)置應(yīng)用(如果只是百人內(nèi)測,后續(xù)步驟即使不做也可以,但是如果要公開發(fā)布,從這里就要開始做,目標(biāo)為了應(yīng)用審核通過,不然包名始終是unreviewed)
設(shè)置隱私權(quán)政策
已設(shè)置過,跳過
應(yīng)用訪問權(quán)限
已設(shè)置過,跳過
廣告
選擇否
內(nèi)容分級
點(diǎn)擊"開始填寫"
點(diǎn)擊“下一步”
點(diǎn)擊“保存”、“下一步”
直接點(diǎn)擊“提交”
目標(biāo)受眾群體
點(diǎn)擊“保存”
新聞應(yīng)用
新冠肺炎 (COVID-19) 接觸者追蹤應(yīng)用和感染狀況應(yīng)用
數(shù)據(jù)安全(這是技術(shù)需要關(guān)注的重點(diǎn)?。。。?/h4>
因為之前就看到過app有申請
camera 拍照權(quán)限
record audio 錄音權(quán)限
read phone state 讀取設(shè)備狀態(tài)權(quán)限
而這些權(quán)限都是google play定義的需要說明的權(quán)限
這里只選擇了“拍照”、“錄音”,點(diǎn)擊“下一步”
拍照權(quán)限說明
點(diǎn)擊“保存”
錄音權(quán)限說明
點(diǎn)擊“保存”
點(diǎn)擊“提交”
政府應(yīng)用
選擇應(yīng)用類別并提供詳細(xì)聯(lián)系信息
填寫完所有信息后點(diǎn)擊“保存”
設(shè)置商品詳情
上傳完應(yīng)用圖標(biāo)、置頂大圖、效果圖(手機(jī)、平板1.0寸、平板10.0寸)后,點(diǎn)擊“保存”
至此,靜靜等待審核吧~
3.3.當(dāng)然在發(fā)布正式版之前,需要看下發(fā)布前測試報告(因為之前有發(fā)布過內(nèi)部測試版本,默認(rèn)發(fā)布完內(nèi)部測試版本后,google play自動會進(jìn)行測試并生成發(fā)布前測試報告)
可以看出問題挺多
這7臺機(jī)器是誰測試的?play商店自動測試????
答:的確是play商店自己安排的測試
官網(wǎng)鏈接 https://support.google.com/googleplay/android-developer/answer/9842757?hl=zh-Hans
先挑錯誤看
明確一點(diǎn):這里的錯誤不是app本身運(yùn)行報錯,而是平臺考慮,基于安全性之類的考量,強(qiáng)制給上架app加上限制要求
錯誤1:安全性問題-不安全的加密模式
提示存在不安全的加密模式,詳情鏈接 https://support.google.com/faqs/answer/9450925
而我們?nèi)タ聪马椖恳蕾嚨娜綆靋om.geetest.sensebot:sensebot:4.3.0
修改方案:
查看項目雖然引入了依賴庫,但是根本沒有調(diào)用依賴庫中相關(guān)api,于是直接刪除依賴庫重新打包
解決完所有錯誤后
重新打包,發(fā)布新的內(nèi)部測試版本
打包上傳完新的aab后,回到控制臺-你的應(yīng)用,查看發(fā)布前測試報告,可以看到,有提示“正在測試。測試過程通常需要 1 小時左右,但也可能會用更長時間?!?br>
安靜等待測試報告吧
3.4.發(fā)布(這里特指正式版)
創(chuàng)建正式版本
點(diǎn)擊“創(chuàng)建新的發(fā)布版本”
錯誤:無法上傳aab,提示“已有版本使用版本號xxx”
因為每次發(fā)布內(nèi)部測試包的時候,google play都會存儲包到內(nèi)容庫,點(diǎn)擊上傳新的aab,會對比內(nèi)容庫中包的版本號是否已經(jīng)存在,存在則不允許上傳,這時候可以點(diǎn)擊“從內(nèi)容庫添加”
選擇之前測試沒問題的包,點(diǎn)擊“添加到版本”即可
上傳成功后,需要仔細(xì)填寫版本說明,不同語言版本的,因為這是真實(shí)展示在play商店讓用戶看到的,不比內(nèi)部測試版本,這里是針對全部用戶開放的,必須仔細(xì)慎重
填寫完畢后,點(diǎn)擊右下角“檢查發(fā)布版本”
發(fā)起審核(竟然不是發(fā)布后自動審核)
選擇左側(cè)菜單欄”Production“
或者選擇左側(cè)菜單欄”Dashboard“
兩個都可以
點(diǎn)擊”Go to publishing overview“
手動點(diǎn)擊”Send xx changes for review“
二次確認(rèn),提示審核最多需要7天,點(diǎn)擊確認(rèn)
等待審核完成
回到”Dashboard“,可以看到當(dāng)前處于正在審核狀態(tài),最多等待7天
3.5 技巧
發(fā)布內(nèi)測包后測試有問題的話,怎么上傳修改后的新內(nèi)測包,要求不升級版本號,之前只能修改一次,升級下版本號,太傻瓜了文章來源:http://www.zghlxwxcb.cn/news/detail-446664.html
點(diǎn)擊暫停測試,然后回到app bundle explorer中刪除(經(jīng)過驗證,也找不到刪除按鈕,所以即使發(fā)布的內(nèi)測包也刪除不了?了??? 該方案失?。?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-446664.html
到了這里,關(guān)于Google Play發(fā)布android app的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!