App從備案到上架(國內(nèi)各大應(yīng)用市場)全過程
發(fā)布時間:2021-07-18閱讀次數(shù):2341
目前各大應(yīng)用市場陸續(xù)推出聲明,各種備案截止日期到12月就要到最后期限責(zé)令整改不讓更新,明年再不整改就面臨下架風(fēng)險。
那么如何進行App的各種備案大家有頭緒嗎?如果是一個新的App如何從新開始上架需要經(jīng)歷哪些步驟,會踩到哪些坑?
從域名備案,IPC備案,App網(wǎng)安備案,隱私協(xié)議檢測,到上架各大應(yīng)用市場的隱私檢測,證件查驗,功能確認(rèn)提出整改。
雖然本次上架的是Flutter App但是Android App完全可以參考使用。
下面就從隱私協(xié)議,網(wǎng)安備案,應(yīng)用市場審核三座大山一并講來,到底有哪需要注意的點和容易踩的坑。
一、隱私協(xié)議
說一下需要注意的點和踩坑的點。
1.應(yīng)用啟動的協(xié)議彈窗
大家應(yīng)該使用App都遇到過這樣的應(yīng)用啟動彈窗:
大家了解最多的就是這個,我們需要在應(yīng)用啟動的時候彈出權(quán)限聲明彈窗,附上隱私協(xié)議與用戶協(xié)議。
大致包括一些敏感信息的收集,數(shù)據(jù)安全的聲明,敏感權(quán)限的使用聲明,第三方庫的收集信息聲明,自啟動相關(guān)聲明,個性化推薦相關(guān)聲明等等。
2.延遲初始化,ContentProvider自動初始化?
我們現(xiàn)在就不能在Application應(yīng)用啟動的時候就初始化第三方插件了,需要在用戶同意協(xié)議之后才能初始化,所以才有延遲初始化這么個說法。
那前兩年很流行的ContentProvider自動初始化技術(shù)怎么辦?那我走?
Flutter應(yīng)用可以在main.dart中創(chuàng)建app的時候彈窗,也可以在Splash頁面中檢測彈窗都可以。Android App也是同樣的做法,可以在Application中檢測也可以在Splash頁面中檢測。
如果有第三方SDK在沒有用戶授權(quán)的前提下偷偷的初始化了,被檢測出來將會不予通過。
3.瀏覽模式
其實網(wǎng)安檢測,只需要在不同意協(xié)議的時候退出應(yīng)用就可以通過,但是部分應(yīng)用市場需要提供瀏覽模式,你不能暴力的讓用戶退出。
就算用戶沒有同意協(xié)議,就算一些第三方不能初始化,就算不能登錄注冊收集用戶敏感信息,用戶也要能瀏覽應(yīng)用的基本功能。所以開發(fā)者就要推出瀏覽模式。
我們可以進入一些基本的功能頁面,在底部或頂部展示授權(quán)的彈窗,讓用戶同意隱私協(xié)議之后享受完整功能。
4.個人信息收集,設(shè)備ID收集
這個應(yīng)該不會有什么問題,隱私協(xié)議中需要聲明,收集用戶哪些信息,收集設(shè)備哪些信息,用于干什么怎么保存是否加密等等。有限不包括設(shè)備ID,運營商,用戶ID,設(shè)備SN,用戶信息等等。
5.危險權(quán)限聲明
我們的應(yīng)用會使用哪些危險權(quán)限,用于做什么用途,危險權(quán)限包括:相機,存儲卡,定位,麥克風(fēng)。
比較難搞的就是一些第三方SDK聲明了一些鬼權(quán)限我們用不到的,比如我只想用相冊,為什么給我麥克風(fēng)權(quán)限...
如果要修改只能自己手動改。
6.第三方SDK收集信息聲明
微信,騰訊,百度,極光,等等使用了哪些第三方庫都需要聲明。
比如百度定位收集經(jīng)緯度,怎么保存,用于什么用途等等。
比如極光推送會收集IMEI MAC地址設(shè)備ID,軟件安裝列表,自啟動等等。
有一點比較難搞的就是收集一些說不清的信息,比如Bugly你收集崩潰信息就算了,為什么還要手機應(yīng)用安裝列表的信息。
可能Bugly的Native版本更新了這個問題,可是Flutter插件比較老,如果每一個第三方都需要這么分別搞Native的橋接,那還是有很大的工作量的。
7.注銷賬號功能
這個功能,iOS市場和谷歌市場都有相關(guān)要求,不難理解,只需要在設(shè)置頁面加上就行。
8.默認(rèn)勾選協(xié)議
包括登錄,注冊的協(xié)議CheckBox,包括一鍵登錄頁面中的協(xié)議CheckBox,都不能默認(rèn)勾選,需要用戶手動勾選或者彈窗勾選。
9.自啟動
這個不是?;畎?,一般自啟動都是推送相關(guān)SDK需要用到,例如極光和個推。
我們需要在隱私協(xié)議中聲明為什么需要自啟動即可。
10.廣告的倒計時
廣告倒計時不能超過5秒,并且要可以關(guān)閉,規(guī)范點擊范圍,并且明確表示跳過廣告的文本。
11.推送與個性化推薦
推送與個性化推薦是不同的兩個東西,推送是基于用戶信息給用戶發(fā)送通知。
需要在設(shè)置中提供關(guān)閉推送的開關(guān)。
個性化推薦是手機用戶信息,大數(shù)據(jù)分析用戶tag,展示不同的信息流。如果你的應(yīng)用沒有個性化推薦千萬不要加這種文本。
如果你的應(yīng)用有個性化推薦,那么就要提供相應(yīng)的相應(yīng)關(guān)閉個性化推薦的開關(guān)。并且開啟和關(guān)閉之后信息流會發(fā)送明顯的變化,如果開啟和關(guān)閉信息流沒有變化就會無法通過隱私協(xié)議審核。
關(guān)于隱私方面其實大家可以白嫖小米開放平臺的隱私檢測,上架小米市場可以先檢查應(yīng)用的隱私協(xié)議,只要它能審核過了,除了華為市場其他市場都沒問題,它是相對比較嚴(yán)格的,而華為市場再另一層,后面單獨講它。
二、網(wǎng)安備案
App備案流程分為服務(wù)器域名備案,IPC備案,網(wǎng)安備案。
我們都可以通過阿里云來申請,這里我不打廣告,有興趣的可以自己去阿里云官網(wǎng)去查找。只需要填寫相關(guān)公司信息和實名信息不難通過,難的是App網(wǎng)安備案。
網(wǎng)絡(luò)安全備案的流程是先申請,然后工作人員到公司實地考察,然后委托第三方對App進行安全審查,審查通過之后完成備案可在全國互聯(lián)網(wǎng)安全管理服務(wù)平臺查看。
國內(nèi)各大應(yīng)用市場主要是需要應(yīng)用去申請這個備案。
具體的復(fù)雜流程就是這個第三方審查機構(gòu),各個城市可能第三方的審核機構(gòu)都不同,我們這里是某邦平臺,下面開始踩坑。
提交開發(fā)好的App包WX發(fā)給對方的對接人員,他們檢測之后會出具檢測報告,大概100頁左右。
由于第一次我太天真以為只是掃掃毒查查隱私的什么的,沒有加固直接給他們了,結(jié)果:
原來審查這么嚴(yán)格,他們的要求是整改全部的中風(fēng)險和高風(fēng)險。
趕緊使用某60加固之后再次提交試試,結(jié)果確實少了很多,但是剩下的都是一些頑固問題。
一些第三方SDK中四大組件的一些問題很難搞,可能是一些Flutter插件并不是最新的,需要手動的集成Native庫,而一些Native庫里面又嵌套Native,煩不勝煩。
改來改去,拉扯幾個回合,直到最后的一個問題始終解決不了,就是未混淆與反編譯風(fēng)險。
原始APP混淆之后,反編譯Dex是這樣:
如果使用某60加固之后是這樣:
雖然已經(jīng)很好了,但是審核機構(gòu)會說類名沒有混淆,不讓通過,那就用他們自家的加固產(chǎn)品吧。反編譯之后是這樣的:
他們自家的確實是混淆了類名,這樣就能過了?不會!他又會說你的代碼有反編譯風(fēng)險。
算了算了回歸正題,下面說明一些App安全審查容易中招的點:
1.加固服務(wù),解決了加固問題,WebView相關(guān)漏洞攻擊風(fēng)險,Http漏洞攻擊風(fēng)險,動態(tài)調(diào)試攻擊風(fēng)險,應(yīng)用克隆”漏洞攻擊風(fēng)險,動態(tài)注入攻擊風(fēng)險都可以解決。
2.拒絕服務(wù)攻擊漏洞
3.代碼混淆處理
4.反編譯風(fēng)險
5.導(dǎo)出標(biāo)識和組件權(quán)限
可以自己導(dǎo)入修改,也可以使用Gradle插件修改。
6.數(shù)據(jù)任意備份風(fēng)險
7.全局異常檢測風(fēng)險
主要就是這些了。
App安全審核通過之后第三方機構(gòu)也會審核你應(yīng)用的隱私協(xié)議,只要按照上面的要求來辦基本問題不大。
整改,彈窗上的同意協(xié)議與不同意協(xié)議的按鈕要明確不能暗示用戶點擊同意。
推送的相關(guān)隱私協(xié)議聲明了即可。
明確收集的信息哪里存儲如何保證安裝,用于什么用途等等之類。
等一切都通過了,網(wǎng)安會發(fā)送短信提示審核通過:
可以在全國互聯(lián)網(wǎng)安全管理服務(wù)平臺查看了:
三、應(yīng)用市場上線
關(guān)于應(yīng)用市場上線的部分,其實反倒是國內(nèi)大部分程序員都熟悉的環(huán)節(jié)了。
我們上架的平臺是應(yīng)用寶,小米,華為,Vivo,Oppo,魅族。除了華為應(yīng)用市場其他的應(yīng)用市場都大差不差。
唯一的差別可能就是應(yīng)用寶,小米,vivo他們可以上傳32位包和64位包,華為不支持分開傳但是他支持AAB格式也不錯。
只需要準(zhǔn)備好相關(guān)的證件,如軟著(電子版也可),營業(yè)執(zhí)照,特殊行業(yè)證件(新聞,招聘,勞務(wù)派遣等等),各大應(yīng)用市場的承諾書蓋印公章,上傳包提交審核即可。
如果應(yīng)用被拒了多半是隱私協(xié)議的問題,他們不會過多關(guān)心你的應(yīng)用功能怎么樣,不會給你應(yīng)用提出意見。
而隱私協(xié)議前面說了可以白嫖小米應(yīng)用市場的隱私協(xié)議。
以下是幾個容易踩坑的點:
加固,一定要加固之后再傳包,建議打三個包32位,64位,和全量包,并分別加固。
危險權(quán)限需要在上架的時候聲明用途。
部分應(yīng)用市場需要在上架的時候就需要聲明權(quán)限。
自動化測試,小米和華為
一些應(yīng)用市場需要進云測,我們可以白嫖小米和華為的免費云測時長。
華為應(yīng)用市場,他們比較人性化了,會對產(chǎn)品提出他們的想法。
比如我們的列表信息沒有舉報功能不夠人性化,用戶體驗不好,OK我們改。
然后說我們應(yīng)用黑暗模式不完善,OK我們改。
然后說我們提供測試賬號不行,要完善信息通過審核可以測試具體業(yè)務(wù)邏輯。如購買到商品,申請到工作等。
為什么申請了工作到已工作列表中不展示,因為測試賬號的信用分不夠狀態(tài)是待審核,所以這也不行。一定要展示到對應(yīng)的列表中。
然后再說你權(quán)限申請的不對,申請動態(tài)權(quán)限必須要權(quán)限申請彈窗的頂部聲明用途,并且拒絕之后不能再次彈窗申請。
第一點,我們的做法是需要在申請權(quán)限的時候彈出Dialog,我們一些第三方的如相機相冊都是庫里面自己申請權(quán)限的,現(xiàn)在要我們要在使用功能前自己申請了。這樣才能控制在哪個頁面彈出Dialog展示對應(yīng)的權(quán)限說明。
關(guān)于第二點,為什么拒絕之后不能再次彈窗,很不能理解,萬一用戶點錯了拒絕了權(quán)限,他再想統(tǒng)一權(quán)限你知道有多麻煩嗎?用戶要自己去設(shè)置中找到權(quán)限再找到自己的app再去打開對應(yīng)的權(quán)限,一般用戶真的會嗎?
我們一般的做法就是彈窗是否再次授權(quán),如果超過二次拒絕就會彈窗給他直接跳轉(zhuǎn)到應(yīng)用的設(shè)置。華為就直接不讓彈窗了。
另外證件不夠,需要額外的增值電信業(yè)務(wù)經(jīng)營許可證。
再就是應(yīng)用名稱有類似的,需要提供品牌證明,好吧我們得注冊品牌申請專利和Logo等操作。
不過說到底是為了你自己的應(yīng)用質(zhì)量把關(guān)和提意見,蠻好的。
特別強調(diào)的一點是華為應(yīng)用市場會把審核失敗所有的問題一次性給你這點就特別好。
總結(jié)一句除了華為應(yīng)用市場其他的都還算順暢,特別是你過了網(wǎng)安的審查和隱私審查之后基本問題不大了。
靈集科技打造本地生活類小程序
十種軟件開發(fā)模型整理
軟件開發(fā)公司的UI/UX設(shè)計師是什么?有啥區(qū)別?
云醫(yī)互聯(lián)SASS解決方案
九大類企業(yè)管理軟件助力企業(yè)數(shù)字化轉(zhuǎn)型
智慧醫(yī)療:創(chuàng)新驅(qū)動,引領(lǐng)醫(yī)療健康未來
企業(yè)為什么要做定制化的軟件,找哪家公司好?
內(nèi)蒙古網(wǎng)站建設(shè),打開大眾對您的“第一印象”
開發(fā)企業(yè)官網(wǎng)有什么作用?內(nèi)蒙古網(wǎng)站建設(shè)總結(jié)了兩點
全面分析小程序商城