Google上架踩坑記錄

前言

最近的項(xiàng)目要在海外運(yùn)營(yíng)沪编,首先要上架 Google Play,但是手上的項(xiàng)目是國(guó)內(nèi)的代碼年扩,為了上架可以說(shuō)是踩了不少坑蚁廓,這里簡(jiǎn)單記錄一下。

1厨幻、 升級(jí) targetSdkVersion 31

Manifest merger failed : Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.

升級(jí)完之后就報(bào)了這個(gè)錯(cuò)誤相嵌,其實(shí)提示已經(jīng)很明顯了腿时,google 要求 Android 12 之后,Manifest 文件中帶有 <intent-filter> 的組件需申明 android:exported 屬性饭宾。

  • 修改后


    image.png
  • 問(wèn)題是批糟,我已經(jīng)把 Manifest 文件,所有帶 <intent-filter> 的四大組件都加上了 android:exported 屬性看铆,還是報(bào)錯(cuò)徽鼎,于是 analyze 打出的 apk (Build -> Analyze Apk),查看打包之后的 Manifest 文件弹惦,這里可以看到所有注冊(cè)的組件否淤,如果是第三方SDK注冊(cè)的組件未申明 android:exported 屬性的話(huà),copy 一份到工程 Manifest肤频,添加上即可(參考上圖)叹括。
2、 Google內(nèi)購(gòu)
  • Google上架宵荒,在審核代碼的時(shí)候汁雷,會(huì)要求代碼中包含
<uses-permission android:name="com.android.vending.BILLING" />

APP內(nèi)購(gòu)買(mǎi)的權(quán)限,如何集成內(nèi)購(gòu)报咳,可以參考這個(gè)鏈接 將 Google Play 結(jié)算庫(kù)集成到您的應(yīng)用中 | Google Play 結(jié)算系統(tǒng) | Android Developers

  • 這里需要注意的是侠讯,如果 App 未上架或者未審核通過(guò),是沒(méi)辦法通過(guò) Api 查詢(xún)到商品列表或者商品詳情的暑刃。App 至少需要面向開(kāi)發(fā)者全面發(fā)布厢漩,才能正常查詢(xún)商品詳情。另外岩臣,查詢(xún)商品的 Product Id 必須和 Google 管理平臺(tái) 添加商品時(shí)的商品 ID 一致溜嗜。
  • 然后在谷歌管理平臺(tái)添加開(kāi)發(fā)者賬號(hào),Google 會(huì)給開(kāi)發(fā)者分配一張?zhí)摂M的測(cè)試卡架谎,可以正常喚起支付彈窗并且允許跳過(guò)實(shí)際支付過(guò)程炸宵。
  • 在測(cè)試機(jī)上的 Google Play 登錄測(cè)試賬號(hào),只要應(yīng)用通過(guò)審核谷扣,這時(shí)候就可以調(diào)起內(nèi)購(gòu)的彈窗了土全。
3、SSL Error Handler
image.png

在審核的時(shí)候会涎,google 反饋了這個(gè)問(wèn)題裹匙,直接看下面代碼

  webView.setWebViewClient(new WebViewClient() {

            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
//                super.onReceivedSslError(view, handler, error); //一定要去掉
                // handler.cancel();// Android默認(rèn)的處理方式
                handler.proceed();// 接受所有網(wǎng)站的證書(shū)
                // handleMessage(Message msg);// 進(jìn)行其他處理
            }
        });

這里接受所有網(wǎng)站證書(shū),google 認(rèn)為是個(gè)安全漏洞末秃,最簡(jiǎn)單的辦法就是全局搜索一下這個(gè)方法概页,去掉,或者彈窗讓用戶(hù)選擇是否接受不安全的網(wǎng)站證書(shū)蛔溃。

4绰沥、 第三方SDK
image.png

嗯…百度翻譯一波…

通過(guò)Google Play發(fā)布的應(yīng)用程序不得使用Google Play更新機(jī)制以外的任何方法修改篱蝇、替換或更新自身。同樣徽曲,應(yīng)用程序可能不會(huì)從Google Play以外的源下載可執(zhí)行代碼(例如dex零截、JAR、.so文件)秃臣。此限制不適用于在虛擬機(jī)或解釋器中運(yùn)行的代碼涧衙,其中提供對(duì)Android API(如Web視圖或?yàn)g覽器中的JavaScript)的間接訪(fǎng)問(wèn)。
在運(yùn)行時(shí)加載的具有解釋語(yǔ)言(JavaScript奥此、Python弧哎、Lua等)的應(yīng)用程序或第三方代碼(如SDK)(如未與應(yīng)用程序打包)不得允許潛在違反Google Play政策。請(qǐng)注意稚虎,您對(duì)應(yīng)用程序的各個(gè)方面負(fù)責(zé)撤嫩;通過(guò)在應(yīng)用程序中使用SDK,您需要對(duì)SDK在應(yīng)用程序內(nèi)的行為負(fù)責(zé)蠢终。

總之 google 不允許應(yīng)用有自動(dòng)更新的行為序攘,像國(guó)內(nèi)熱修復(fù)等補(bǔ)丁功能,google 是嚴(yán)令禁止的寻拂,于是項(xiàng)目拿掉了像 bugly程奠,友盟,百度統(tǒng)計(jì)祭钉,阿里云日志瞄沙,阿里云人臉識(shí)別,百度人臉識(shí)別慌核,等可能讀取用戶(hù)信息和自動(dòng)更新的第三方SDK距境。

5、 Huawei Mobile Services SDK
image.png

嗯…再百度翻譯一波…

您的應(yīng)用程序包含不符合設(shè)備和網(wǎng)絡(luò)濫用政策的內(nèi)容垮卓。我們發(fā)現(xiàn)您的應(yīng)用程序使用的是不兼容版本的華為移動(dòng)服務(wù)SDK肮疗,該SDK包含從Google Play之外的未知來(lái)源下載或安裝應(yīng)用程序的代碼。
鑒于SDK的性質(zhì)扒接,請(qǐng)將其從提交到Play Store的應(yīng)用程序版本中刪除。

這個(gè)問(wèn)題可以說(shuō)是非常嚴(yán)重们衙,直接導(dǎo)致我們的應(yīng)用封停了钾怔。也就是說(shuō)之前上架的版本也會(huì)被迫下架……上面說(shuō)到了,谷歌嚴(yán)令禁止代碼中存在動(dòng)態(tài)更新的行為蒙挑,這里說(shuō)使用了不兼容的華為移動(dòng)服務(wù)SDK宗侦,該SDK包含從Google Play之外的未知來(lái)源下載或安裝應(yīng)用程序的代碼。筆者第一個(gè)想到的是 Huawei Maven 倉(cāng)庫(kù)忆蚀。

maven { url 'http://developer.huawei.com/repo/'}

其次矾利,筆者還拿掉了跟華為相關(guān)的推送SDK(順手拿掉了魅族姑裂,小米,OPPO男旗,VIVO舶斧,相關(guān)推送的 SDK)

 implementation 'com.huawei.hms:push:6.3.0.302'

Huawei 相關(guān)第三方庫(kù)

implementation 'com.llew.huawei:verifier:1.0.3'

這個(gè)庫(kù)是為了修復(fù)華為 Register too many Broadcast Receivers 的崩潰的,可能被 Google 識(shí)別為動(dòng)態(tài)修復(fù)的代碼了吧察皇。

還有一個(gè)適配桌面未讀消息的角標(biāo)的庫(kù)

implementation "me.leolin:ShortcutBadger:1.1.17@aar"

從 manifest 文件看到它申請(qǐng)了一系列華為的權(quán)限茴厉,沒(méi)辦法先拿掉吧。

6什荣、 不安全的加密模式
7矾缓、 不安全的解壓縮模式
e57cf69cf00f1f84089eb34eafee8c3.jpg

這里簡(jiǎn)單說(shuō)一下,Google 只是建議我們按照給的參考文檔稻爬,修改這兩個(gè)問(wèn)題嗜闻,但并不強(qiáng)制。想優(yōu)化的直接點(diǎn)進(jìn)去 Google 幫助中心文章 參考修改就行了桅锄。

8琉雳、 登錄憑據(jù)無(wú)效或不完整

為了審核您的應(yīng)用是否符合開(kāi)發(fā)者計(jì)劃政策,我們需要您提供該應(yīng)用的有效登錄憑據(jù)以及審核該應(yīng)用所需的任何其他資源竞滓。具體問(wèn)題如下:

  • 您未向我們提供訪(fǎng)問(wèn)您的應(yīng)用所需的有效演示/訪(fǎng)客帳號(hào)或有效用戶(hù)名和密碼咐吼。

解決:一定要記得在 Google 后臺(tái)添加測(cè)試需要的賬號(hào)密碼,具體看截圖商佑。

image.png

Google 會(huì)登錄開(kāi)發(fā)者提供的賬號(hào)密碼測(cè)試應(yīng)用功能的完整性锯茄,到了這一步,基本上審核通過(guò)問(wèn)題不大茶没。到這里筆者的項(xiàng)目算是順利上架了肌幽,也希望這篇文章給需要上 Google Play 的打工人提供點(diǎn)點(diǎn)的幫助。加油抓半,只要思想不滑坡喂急,辦法總比困難多……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市笛求,隨后出現(xiàn)的幾起案子廊移,更是在濱河造成了極大的恐慌,老刑警劉巖探入,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狡孔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蜂嗽,警方通過(guò)查閱死者的電腦和手機(jī)苗膝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)植旧,“玉大人辱揭,你說(shuō)我怎么就攤上這事离唐。” “怎么了问窃?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵亥鬓,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我泡躯,道長(zhǎng)贮竟,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任较剃,我火速辦了婚禮咕别,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘写穴。我一直安慰自己惰拱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布啊送。 她就那樣靜靜地躺著偿短,像睡著了一般。 火紅的嫁衣襯著肌膚如雪馋没。 梳的紋絲不亂的頭發(fā)上昔逗,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音篷朵,去河邊找鬼勾怒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛声旺,可吹牛的內(nèi)容都是我干的笔链。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼腮猖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鉴扫!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起澈缺,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤坪创,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后姐赡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體误堡,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年雏吭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陪踩。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杖们,死狀恐怖悉抵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情摘完,我是刑警寧澤姥饰,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站孝治,受9級(jí)特大地震影響列粪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谈飒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一岂座、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧杭措,春花似錦费什、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至泉懦,卻和暖如春稿黍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背崩哩。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工巡球, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人琢锋。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓辕漂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親吴超。 傳聞我的和親對(duì)象是個(gè)殘疾皇子钉嘹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容