We will reject apps for any content or behavior that we believe is over the line. What line, you ask? Well, as a Supreme Court Justice once said, “I'll know it when I see it”. And we think that you will also know it when you cross it.摘自蘋(píng)果審核指南 https://developer.apple.com/app-store/review/guidelines/
是的礁苗,蘋(píng)果才是真爸爸。
蘋(píng)果App審核指南每年都會(huì)不定期地調(diào)整幾次。通常在調(diào)整后堪簿,管理員登錄developer后臺(tái)匿醒,會(huì)收到蘋(píng)果的推送讓你點(diǎn)擊“OK”净捅,不過(guò)誰(shuí)又會(huì)去仔細(xì)閱讀那么一長(zhǎng)段的指南呢圈浇?都是去ASO上看看好心人翻譯提煉后的文章卜壕,頂多事后再去原文翻翻確認(rèn)一下吧您旁。
17年6月WWDC前后有一波常規(guī)調(diào)整。此次調(diào)整后審核流程加強(qiáng)了 自動(dòng)化掃描關(guān)鍵字 的能力轴捎,我們團(tuán)隊(duì)一個(gè)月內(nèi)連續(xù)兩個(gè)版本鹤盒、三個(gè)APP,提審近30次被拒侦副。其中有被第三方SDK坑害的昨悼,也有我們自己一些“no zuo no die”自作聰明的行為惹怒了審核員的。好在最后經(jīng)過(guò)不懈的修改和與審核團(tuán)隊(duì)溝通跃洛,終于通過(guò)。
總結(jié)一些有意思的點(diǎn)终议,供參考汇竭。
為什么被拒
1.私有API
不允許使用私有API
私有API包括兩種,一種是代碼中(包括第三方庫(kù))使用了與蘋(píng)果私有API相同命名的API穴张。另一種是代碼中(包括第三方庫(kù))的確使用了私有API细燎,這類(lèi)私有API有可能在低版本iOS中是公開(kāi)API,高版本被蘋(píng)果私有化皂甘,要引起注意玻驻。
"2.5.1 Apps may only use public APIs and must run on the currently shipping OS. Learn more about public APIs. Keep your apps up-to-date and make sure you phase out any deprecated features, frameworks or technologies that will no longer be supported in future versions of an OS."
2.防審核
不允許使用基于繞開(kāi)審核的技術(shù),或利用隱藏功能來(lái)規(guī)避審核被拒風(fēng)險(xiǎn)偿枕。
"2.3.1 Don’t include any hidden or undocumented features in your app; your app’s functionality should be clear to end-users and App Review. Egregious or repeated behavior is grounds for removal from the Developer Program. We work hard to make the App Store a trustworthy ecosystem and expect our app developers to follow suit; if you’re dishonest, we don’t want to do business with you."
3.遠(yuǎn)程下載可執(zhí)行代碼
不允許遠(yuǎn)程下載可執(zhí)行代碼
"2.5.2 Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code, including other apps. Apps designed to teach, develop, or test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user."
4.在App store外升級(jí)APP
不允許使用第三方APP升級(jí)璧瞬。不允許 包含 第三方可升級(jí)APP的平臺(tái)的任何代碼,哪怕你沒(méi)有實(shí)際在使用升級(jí)功能渐夸。如蒲公英pgyer SDK嗤锉。
違反的也是上一條"2.5.2"
審核手段
1.人工
蘋(píng)果人工審核一般情況下會(huì)持續(xù)10分鐘到1小時(shí)不等,更多數(shù)情況下在10多分鐘左右墓塌。
人工審核會(huì)對(duì)主要界面進(jìn)行肉眼審核瘟忱,一些常見(jiàn)的審核點(diǎn)都在人工審核范圍奥额,如網(wǎng)絡(luò)可用性、抽獎(jiǎng)等商業(yè)活動(dòng)是否聲明與蘋(píng)果無(wú)關(guān)访诱、不能出現(xiàn)beta測(cè)試字樣垫挨、不能出現(xiàn)安卓Android字樣、符合年齡分級(jí)且不違反當(dāng)?shù)胤傻鹊却ゲ恕2⑶液艽罂赡苄詴?huì)對(duì)主流程進(jìn)行驗(yàn)證九榔,比如電商類(lèi)App,審核員可能會(huì)下單小金額產(chǎn)品玫氢,并嘗試進(jìn)行支付帚屉。
雖然可能性不大,但最嚴(yán)重的情況是:任何只要是審核員主觀認(rèn)為不合適的內(nèi)容漾峡,都會(huì)被拒攻旦。
2.自動(dòng)化
自動(dòng)化審核主要是掃描關(guān)鍵字,私有API生逸、被封殺的第三方平臺(tái)(pgyer)牢屋、違規(guī)關(guān)鍵字對(duì)應(yīng)的key(如被審核員發(fā)現(xiàn)"iosDownUrl":"http://www.pgyer.com/xxx"這種鍵值對(duì),那么單純刪除value:"http://www.pgyer.com/xxx"沒(méi)用槽袄,蘋(píng)果會(huì)因?yàn)閕osDownUrl這個(gè)key拒絕烙无,所以key也得刪除)。
3.抓包
抓包并不是常用手段遍尺。但綜合審核被拒經(jīng)驗(yàn)來(lái)看截酷,蘋(píng)果也會(huì)用抓包的方式審核http接口的path、接口字段key與value乾戏。
比如接口中有“audit”字段迂苛,審核員人為判斷為基于“防審核”的功能,從而拒絕鼓择。
審核員
審核員會(huì)中文三幻,但與他/她郵件溝通時(shí),最好附上中文+英文呐能,以免無(wú)效溝通浪費(fèi)時(shí)間念搬。
審核員工作時(shí)間是美國(guó)西部時(shí)間(比北京時(shí)間慢15小時(shí))的白天8小時(shí)制,周一至周五摆出。其他時(shí)間不審核朗徊。
審核員是人,就會(huì)有脾氣偎漫。審核員的權(quán)利也很大荣倾,可以自主決定對(duì)app的違規(guī)行為進(jìn)行處罰,如果審核員認(rèn)為app違規(guī)嚴(yán)重可能除以延期審核骑丸、下架舌仍、封號(hào)等處罰妒貌。
審核員會(huì)測(cè)試APP的主要流程,應(yīng)該把審核員當(dāng)做一位用戶(hù)對(duì)待铸豁,不要將錯(cuò)誤的頁(yè)面灌曙、流程展現(xiàn)給審核員。
對(duì)于被拒的app节芥,將會(huì)由該審核員一直跟進(jìn)到審核通過(guò)在刺。通過(guò)申訴渠道,app會(huì)被提交到“審核委員會(huì)”評(píng)判头镊。
溝通渠道
1.Resolution center 郵件
與蘋(píng)果審核團(tuán)隊(duì)的溝通渠道主要是通過(guò)itunes connect中的Resolution center(解決方案中心)蚣驼,在其中用郵件的形式進(jìn)行解釋說(shuō)明回復(fù)。并可以附上附件相艇,比如一些截圖颖杏、簡(jiǎn)單的數(shù)據(jù)txt文檔。
2.App 審核信息 section
注意:在每次提交審核時(shí)坛芽,將附件和備注說(shuō)明都填寫(xiě)在“App 審核信息”欄目里留储,這是最好的方式。(新版本會(huì)繼承老版本的內(nèi)容咙轩,如無(wú)改變則無(wú)需再次填寫(xiě))
3.電話(huà)
有時(shí)获讳,蘋(píng)果審核員會(huì)主動(dòng)打電話(huà)給開(kāi)發(fā)者,給予一些審核被拒修改建議活喊。打電話(huà)的原因丐膝,猜想可能是審核員因?yàn)橐?guī)避一些商業(yè)沖突糾紛,不方便書(shū)面回復(fù)钾菊。比如此次通過(guò)關(guān)鍵詞掃描封殺蒲公英(pgyer)帅矗,就是審核員通過(guò)電話(huà)直接說(shuō)明“pgyer”關(guān)鍵詞。
蘋(píng)果審核員可能會(huì)留下他們自己的聯(lián)系方式结缚,如果有需要也可以打給他們。要開(kāi)通國(guó)際漫游软棺,且可能需要多打幾次才會(huì)接聽(tīng)红竭。
蘋(píng)果審核員強(qiáng)調(diào)自己不解答任何技術(shù)問(wèn)題,他們只會(huì)對(duì)app所違反的條例進(jìn)行簡(jiǎn)單解釋?zhuān)劣趯?duì)如何修改代碼喘落,則不會(huì)給予任何建議茵宪。需要運(yùn)氣好的話(huà)會(huì)給一點(diǎn)點(diǎn)提示。所以這也是最麻煩的地方瘦棋,對(duì)于蘋(píng)果不明講的問(wèn)題稀火,只能一次次分析、一次次刪除赌朋,一次次提交凰狞。踩坑積累經(jīng)驗(yàn)篇裁。
防審核
可以明確,這種行為是欺騙赡若,情結(jié)更嚴(yán)重达布。被審核出來(lái)會(huì)直接導(dǎo)致嚴(yán)厲處罰,而不僅僅是審核被拒絕逾冬。
有人說(shuō)“防審核”與“ABTest”黍聂,審核員怎么區(qū)分呢?首先身腻,審核員就像美國(guó)的大法官产还,他說(shuō)有罪就是有罪。其次嘀趟,審核員會(huì)用抓包分析脐区、掃關(guān)鍵字的方式進(jìn)行主觀判斷,比如App啟動(dòng)階段請(qǐng)求的接口中有“audit”去件、“l(fā)uaScruptZip”等字段坡椒,就被審核員直接指出,這是“以繞開(kāi)審核”為目的的行為尤溜。
刪除這些字段和本地防審核功能也不行倔叼,直到刪除該接口,才得以成功宫莱。
處罰
通常的審核被拒丈攒,只需要修改后重新提交即可。如果嚴(yán)重違規(guī)授霸,比如使用欺騙方式巡验、多次反復(fù)違反審核規(guī)則,蘋(píng)果審核會(huì)對(duì)app甚至itunes整個(gè)賬號(hào)做出處罰碘耳。
1.延期審核
延期審核經(jīng)過(guò)親身體驗(yàn)大約會(huì)延期2個(gè)工作日显设。
2.下架app、封停itunes賬號(hào)
下架app和封停itunes賬號(hào)辛辨,具體時(shí)長(zhǎng)官方?jīng)]有說(shuō)明捕捂,網(wǎng)上的說(shuō)法從幾天到幾個(gè)月不等(360當(dāng)年被蘋(píng)果下架封號(hào)好幾個(gè)月,也有人說(shuō)1年)
申訴
對(duì)被拒的app斗搞,采用申訴的辦法可以將app提交到“審核委員會(huì)”指攒。
建議首先還是應(yīng)該將明確的審核違規(guī)問(wèn)題改好。如果確認(rèn)是當(dāng)前審核員誤解了app的用意僻焚,可以提交申訴允悦,郵件說(shuō)清楚理由。
熱更新
蘋(píng)果禁止熱更新app虑啤。熱更新一定程度上也是繞開(kāi)審核的行為隙弛,且對(duì)用戶(hù)有一定的安全風(fēng)險(xiǎn)架馋。
目前蘋(píng)果的態(tài)度是禁止 通過(guò)下載可執(zhí)行代碼來(lái)修改Native代碼而達(dá)到更新功能的行為。所以JSPatch中槍被封殺驶鹉,ReactNative熱更新存活绩蜻。
但這只是目前,以后如何發(fā)展尚不明確室埋。
預(yù)審核
預(yù)審核是通過(guò)一個(gè)工具办绝,自動(dòng)化對(duì)整個(gè)APP的代碼(包括第三方庫(kù))進(jìn)行自動(dòng)化檢測(cè),對(duì)于可以違規(guī)關(guān)鍵字姚淆、私有API等進(jìn)行掃描并反饋結(jié)果孕蝉。
====
最后
有人說(shuō)處理審核被拒要心大。
在我看來(lái)腌逢,首先一定是要對(duì)“蘋(píng)果審核”這件事心存尊敬和感激降淮。正是因?yàn)樘O(píng)果將用戶(hù)、將整個(gè)App store的質(zhì)量&秩序放在第一位搏讶,才有了今天這么好的iOS App佳鳖。
其次,不要試圖繞開(kāi)審核媒惕、欺騙審核系吩。一定要老老實(shí)實(shí)把問(wèn)題改掉,合規(guī)上架才是王道妒蔚。
最后穿挨,跟審核員郵件溝通一定要注意表明自己正確的改正態(tài)度,記住審核員也是人肴盏。