內(nèi)部審核渠道人員教你如何處理被蘋果App Store審核多次被拒和被警告的情況下通過審核
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.
摘自蘋果審核指南https://developer.apple.com/app-store/review/guidelines/是的彻采,蘋果才是真爸爸。 蘋果App審核指南每年都會不定期地調(diào)整幾次。通常在調(diào)整后柠衅,管理員登錄developer后臺侍匙,會收到蘋果的推送讓你點擊“OK”民珍,不過誰又會去仔細(xì)閱讀那么一長段的指南呢仑扑?都是去ASO上看看好心人翻譯提煉后的文章暴构,頂多事后再去原文翻翻確認(rèn)一下吧跪呈。
19年1月WWDC前后有一波常規(guī)調(diào)整。此次調(diào)整后審核流程加強(qiáng)了自動化掃描關(guān)鍵字的能力取逾,我們團(tuán)隊一個月內(nèi)連續(xù)兩個版本耗绿、三個APP,提審近30次被拒砾隅。其中有被第三方SDK坑害的误阻,也有我們自己一些“no zuo no die”自作聰明的行為惹怒了審核員的。
好在最后經(jīng)過不懈的修改和與審核團(tuán)隊溝通,終于通過究反。 總結(jié)一些有意思的點寻定,供參考。
為什么被拒
1.私有API 不允許使用私有API 私有API包括兩種精耐,一種是代碼中(包括第三方庫)使用了與蘋果私有API相同命名的API狼速。另一種是代碼中(包括第三方庫)的確使用了私有API,這類私有API有可能在低版本iOS中是公開API卦停,高版本被蘋果私有化向胡,要引起注意。
"2.5.1 Apps may only use public APIs and must run on the currently shipping OS. Learn more aboutpublic 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.防審核 不允許使用基于繞開審核的技術(shù)惊完,或利用隱藏功能來規(guī)避審核被拒風(fēng)險僵芹。 "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外升級APP 不允許使用第三方APP升級。不允許包含第三方可升級APP的平臺的任何代碼专执,哪怕你沒有實際在使用升級功能淮捆。如蒲公英pgyer SDK。 違反的也是上一條"2.5.2"
審核手段
1.人工 蘋果人工審核一般情況下會持續(xù)10分鐘到1小時不等本股,更多數(shù)情況下在10多分鐘左右。 人工審核會對主要界面進(jìn)行肉眼審核桐腌,一些常見的審核點都在人工審核范圍拄显,如網(wǎng)絡(luò)可用性、抽獎等商業(yè)活動是否聲明與蘋果無關(guān)案站、不能出現(xiàn)beta測試字樣躬审、不能出現(xiàn)安卓Android字樣、符合年齡分級且不違反當(dāng)?shù)胤傻鹊润⊙巍2⑶液艽罂赡苄詴χ髁鞒踢M(jìn)行驗證承边,比如電商類App,審核員可能會下單小金額產(chǎn)品石挂,并嘗試進(jìn)行支付博助。 雖然可能性不大,但最嚴(yán)重的情況是:任何只要是審核員主觀認(rèn)為不合適的內(nèi)容痹愚,都會被拒富岳。
2.自動化 自動化審核主要是掃描關(guān)鍵字,私有API拯腮、被封殺的第三方平臺(pgyer)窖式、違規(guī)關(guān)鍵字對應(yīng)的key(如被審核員發(fā)現(xiàn)"iosDownUrl":"http://www.pgyer.com/xxx"這種鍵值對,那么單純刪除value:"http://www.pgyer.com/xxx"沒用动壤,蘋果會因為iosDownUrl這個key拒絕萝喘,所以key也得刪除)。
3.抓包 抓包并不是常用手段。但綜合審核被拒經(jīng)驗來看阁簸,蘋果也會用抓包的方式審核http接口的path弦蹂、接口字段key與value。 比如接口中有“audit”字段强窖,審核員人為判斷為基于“防審核”的功能凸椿,從而拒絕。 審核員 審核員會中文翅溺,但與他/她郵件溝通時脑漫,最好附上中文+英文,以免無效溝通浪費時間咙崎。 審核員工作時間是美國西部時間(比北京時間慢15小時)的白天8小時制优幸,周一至周五。其他時間不審核褪猛。 審核員是人网杆,就會有脾氣。審核員的權(quán)利也很大伊滋,可以自主決定對app的違規(guī)行為進(jìn)行處罰碳却,如果審核員認(rèn)為app違規(guī)嚴(yán)重可能除以延期審核、下架笑旺、封號等處罰昼浦。 審核員會測試APP的主要流程,應(yīng)該把審核員當(dāng)做一位用戶對待筒主,不要將錯誤的頁面关噪、流程展現(xiàn)給審核員。 對于被拒的app乌妙,將會由該審核員一直跟進(jìn)到審核通過使兔。通過申訴渠道,app會被提交到“審核委員會”評判藤韵。
利用內(nèi)部溝通渠道【ios審核內(nèi)部渠道傳送門】
1.Resolution center 郵件? 與蘋果審核團(tuán)隊的溝通渠道主要是通過itunes connect中的Resolution center(解決方案中心)虐沥,在其中用郵件的形式進(jìn)行解釋說明回復(fù)。并可以附上附件荠察,比如一些截圖置蜀、簡單的數(shù)據(jù)txt文檔。
2.App 審核信息 section? 注意:在每次提交審核時悉盆,將附件和備注說明都填寫在“App 審核信息”欄目里盯荤,這是最好的方式。(新版本會繼承老版本的內(nèi)容焕盟,如無改變則無需再次填寫)
3.電話 有時秋秤,蘋果審核員會主動打電話給開發(fā)者宏粤,給予一些審核被拒修改建議。打電話的原因灼卢,猜想可能是審核員因為規(guī)避一些商業(yè)沖突糾紛绍哎,不方便書面回復(fù)。比如此次通過關(guān)鍵詞掃描封殺蒲公英(pgyer)鞋真,就是審核員通過電話直接說明“pgyer”關(guān)鍵詞崇堰。 蘋果審核員可能會留下他們自己的聯(lián)系方式,如果有需要也可以打給他們涩咖。要開通國際漫游海诲,且可能需要多打幾次才會接聽。 蘋果審核員強(qiáng)調(diào)自己不解答任何技術(shù)問題檩互,他們只會對app所違反的條例進(jìn)行簡單解釋特幔,至于對如何修改代碼,則不會給予任何建議闸昨。需要運氣好的話會給一點點提示蚯斯。所以這也是最麻煩的地方,對于蘋果不明講的問題饵较,只能一次次分析拍嵌、一次次刪除,一次次提交告抄。踩坑積累經(jīng)驗撰茎。 防審核 可以明確,這種行為是欺騙打洼,情結(jié)更嚴(yán)重。被審核出來會直接導(dǎo)致嚴(yán)厲處罰逆粹,而不僅僅是審核被拒絕募疮。 有人說“防審核”與“ABTest”,審核員怎么區(qū)分呢僻弹?首先阿浓,審核員就像美國的大法官,他說有罪就是有罪蹋绽。其次芭毙,審核員會用抓包分析、掃關(guān)鍵字的方式進(jìn)行主觀判斷卸耘,比如App啟動階段請求的接口中有“audit”退敦、“l(fā)uaScruptZip”等字段,就被審核員直接指出蚣抗,這是“以繞開審核”為目的的行為侈百。
刪除這些字段和本地防審核功能也不行,直到刪除該接口,才得以成功钝域。? 處罰 通常的審核被拒讽坏,只需要修改后重新提交即可。如果嚴(yán)重違規(guī)例证,比如使用欺騙方式路呜、多次反復(fù)違反審核規(guī)則,蘋果審核會對app甚至itunes整個賬號做出處罰织咧。
1.延期審核 延期審核經(jīng)過親身體驗大約會延期2個工作日胀葱。
2.下架app、封停itunes賬號 下架app和封停itunes賬號烦感,具體時長官方?jīng)]有說明巡社,網(wǎng)上的說法從幾天到幾個月不等(360當(dāng)年被蘋果下架封號好幾個月,也有人說1年) 申訴 對被拒的app手趣,采用申訴的辦法可以將app提交到“審核委員會”晌该。
建議首先還是應(yīng)該將明確的審核違規(guī)問題改好。如果確認(rèn)是當(dāng)前審核員誤解了app的用意绿渣,可以提交申訴朝群,郵件說清楚理由。 熱更新 蘋果禁止熱更新app中符。熱更新一定程度上也是繞開審核的行為姜胖,且對用戶有一定的安全風(fēng)險。
目前蘋果的態(tài)度是禁止通過下載可執(zhí)行代碼來修改Native代碼而達(dá)到更新功能的行為淀散。所以JSPatch中槍被封殺右莱,ReactNative熱更新存活。 但這只是目前档插,以后如何發(fā)展尚不明確慢蜓。 預(yù)審核 預(yù)審核是通過一個工具,自動化對整個APP的代碼(包括第三方庫)進(jìn)行自動化檢測郭膛,對于可以違規(guī)關(guān)鍵字晨抡、私有API等進(jìn)行掃描并反饋結(jié)果。? ====最后有人說處理審核被拒要心大则剃。 在我看來耘柱,首先一定是要對“蘋果審核”這件事心存尊敬和感激。正是因為蘋果將用戶棍现、將整個App store的質(zhì)量&秩序放在第一位调煎,才有了今天這么好的iOS App。
其次轴咱,不要試圖繞開審核汛蝙、欺騙審核烈涮。一定要老老實實把問題改掉,合規(guī)上架才是王道窖剑。 最后坚洽,跟審核員郵件溝通一定要注意表明自己正確的改正態(tài)度,記住審核員也是人西土。