蘋果的應(yīng)用審核指南咳燕,其實(shí)是iOS開發(fā)人員的生存指南
前言
蘋果AppStore有著大量?jī)?yōu)質(zhì)的各類應(yīng)用撼泛,所有的應(yīng)用都需要通過蘋果審核團(tuán)隊(duì)的審核才能獲得發(fā)布麦撵。但是說到審核團(tuán)隊(duì)上遥,相信很多iOS開發(fā)者都是崩潰的搏屑,他們拒絕應(yīng)用的理由花樣百出,讓人抓狂卻又毫無辦法粉楚。他們神秘低調(diào)辣恋,除了申訴渠道,不和外界做任何的溝通模软,即使要下架你的應(yīng)用或者終止你的開發(fā)者賬號(hào)伟骨,也是通過蘋果的技術(shù)支持來和你溝通,所以在你的申訴或者某個(gè)申請(qǐng)沒有得到回復(fù)時(shí)燃异,你會(huì)感到非常的無助携狭。
我們無從了解審核團(tuán)隊(duì)的人,也無從了解審核團(tuán)隊(duì)的審核流程回俐,但是充分的了解審核指南逛腿、掌握各類應(yīng)用所必須遵從的規(guī)范,對(duì)于做iOS開發(fā)仅颇、產(chǎn)品单默、運(yùn)營(yíng)的小伙伴們來說是非常有必要的。
應(yīng)用被拒分析
通過整理自己多個(gè)應(yīng)用的提交史以及其他同行的案例忘瓦,對(duì)app被拒較多的違反條款做下分析
1.二進(jìn)制文件及元數(shù)據(jù)
- app不能存在明顯錯(cuò)誤及崩潰問題(在提交 app 之前搁廓,務(wù)必在設(shè)備上對(duì) app 的錯(cuò)誤和穩(wěn)定性進(jìn)行測(cè)試;如果你的 app 需要登錄耕皮,需要提供演示帳戶信息并保持服務(wù)器的訪問通暢境蜕,如果審核團(tuán)隊(duì)在審核過程中發(fā)現(xiàn)了錯(cuò)誤或者崩潰問題,將會(huì)以Guideline 2.1 - Performance - App Completeness:We discovered one or more bugs in your app when reviewed on iPhone running....拒絕應(yīng)用凌停,此類拒絕需要修改完善后重新打包上傳)
- app的信息及元數(shù)據(jù)完整且正確粱年。元數(shù)據(jù)就是App信息中哪些可編輯的圖標(biāo)及文案信息(要確保 app 的描述、屏幕快照和預(yù)覽能夠準(zhǔn)確反映 app 的核心體驗(yàn)苦锨,并不斷更新逼泣,以便保持與新版本相應(yīng)的最新狀態(tài)趴泌。屏幕快照應(yīng)展示 app 的使用情況,而非僅顯示標(biāo)題封面拉庶、登錄頁面或初始屏幕嗜憔。元數(shù)據(jù)應(yīng)適合所有受眾,所以要確保App 和 App 內(nèi)購(gòu)買項(xiàng)目的相關(guān)圖標(biāo)氏仗、屏幕快照和預(yù)覽保持在 4+ 年齡分級(jí)吉捶;即使你的 app 分級(jí)是17+,也必須遵從皆尔。 如果元數(shù)據(jù)違反上述要求呐舔,審核團(tuán)隊(duì)將會(huì)以Guideline 2.3.x- Performance - Accurate Metadata拒絕應(yīng)用,如果是屏幕快照的問題慷蠕,審核團(tuán)隊(duì)還是還會(huì)附上圖片珊拼,此類問題不需要重新打包,只需要編輯好元數(shù)據(jù)部分再次提交審核即可流炕。這里有個(gè)小細(xì)節(jié)需要注意澎现,屏幕快照一定要按照對(duì)應(yīng)尺寸的iPhone設(shè)備頭部來設(shè)計(jì),如果你用5.5’‘設(shè)備的頭部效果作為5.8及以上設(shè)備的頭部效果制作屏幕快照的話每辟,那一定會(huì)被拒絕剑辫。)
2.App必須遵從的條款
- App 不能包含具有攻擊性、不顧及他人感受渠欺、令人不安妹蔽、惹人厭惡或低俗不堪的內(nèi)容:色情、人身或動(dòng)物傷害挠将、宗教主義胳岂、鼓勵(lì)犯罪、誹謗歧視捐名、虛假信息旦万。審核團(tuán)隊(duì)對(duì)于這些內(nèi)容的判斷是主觀的闹击,正如審核指南簡(jiǎn)介里的一條內(nèi)容所說:“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.(套用最高法院大法官的一句話:“當(dāng)我看到的時(shí)候镶蹋,我就知道了”。而且赏半,我們相信贺归,當(dāng)您超出這個(gè)范圍時(shí),您自己也會(huì)意識(shí)到断箫。)”拂酣。所以在涉及App所展示內(nèi)容的時(shí)候后,要做到更好的控制仲义,無論文字還是圖片都可能被審核團(tuán)隊(duì)抓住并拒絕婶熬。
- 對(duì)于包含用戶生成內(nèi)容的 App(例如發(fā)帖剑勾,評(píng)論等),有特定的難題需要解決赵颅,比如知識(shí)產(chǎn)權(quán)侵權(quán)虽另、匿名欺凌等。為了避免濫用饺谬,包含用戶生成內(nèi)容或社交網(wǎng)絡(luò)服務(wù)的 app 必須滿足以下條件:
- 采用相應(yīng)的方法來過濾令人反感的內(nèi)容捂刺,以免這些內(nèi)容在 app 中發(fā)布
- 制定一個(gè)機(jī)制,以舉報(bào)攻擊性內(nèi)容并在出現(xiàn)問題時(shí)及時(shí)作出回應(yīng)
- 若用戶發(fā)布攻擊性內(nèi)容募寨,可以取消其使用服務(wù)的資格
- 公布聯(lián)系信息族展,以便用戶與你聯(lián)系
- 知識(shí)產(chǎn)權(quán),要確保 app 只包含由自己創(chuàng)建或擁有使用許可的內(nèi)容拔鹰。如果您已越線并在未經(jīng)許可的情況下使用了內(nèi)容仪缸,您的 app 可能會(huì)被移除。當(dāng)然列肢,如果他人抄襲了你的App腹殿,則他們的 app 也可能會(huì)被移除。如果你認(rèn)為自己的知識(shí)產(chǎn)權(quán)在 App Store 上受到了其他開發(fā)者的侵犯例书,可以通過App Store Content Dispute來維護(hù)權(quán)利锣尉。這里有一個(gè)概念描述的比較模糊就是‘‘擁有使用許可的內(nèi)容",而這個(gè)內(nèi)容恰恰是很重要的部分决采,很多應(yīng)用被拒案例中都有Guideline 5.2.1 - Legal - Intellectual Property自沧,而一但被這條準(zhǔn)則拒絕,應(yīng)用是被盯上了树瞭,除了下架這類業(yè)務(wù)和提供獲取的許可之外拇厢,沒有更好的辦法,如果你沒有足夠的條款和信息依據(jù)來說明這是一次審核上的誤判晒喷,那盲目的嘗試去跟審核團(tuán)隊(duì)申訴往往得不償失孝偎。這類遇到的被拒案例很多,有需要提供網(wǎng)文運(yùn)營(yíng)許可凉敲、拍賣經(jīng)營(yíng)許可衣盾、金融產(chǎn)品許可、醫(yī)療機(jī)構(gòu)許可等等爷抓。
- 隱私條款势决,在 Apple 生態(tài)體系中,保護(hù)用戶隱私總是第一要?jiǎng)?wù)蓝撇。要在處理個(gè)人數(shù)據(jù)時(shí)小心謹(jǐn)慎果复,以確保遵守了隱私保護(hù)最佳做法、所銷售區(qū)域的法律渤昌。尤其是在數(shù)據(jù)收集和存儲(chǔ)虽抄、數(shù)據(jù)使用和共享走搁、健康和健康研究、兒童的個(gè)人信息迈窟、定位服務(wù)方面更要閱讀和研究審核指南給出的協(xié)議和條款
3.設(shè)計(jì)
- 不能抄襲現(xiàn)有AppSotre應(yīng)用朱盐。請(qǐng)拿出你自己的想法,不要簡(jiǎn)單照搬 App Store 上的熱門 app菠隆,或只是細(xì)微修改其他 app 的 UI兵琳,就將其挪為己用。這么做不但有引發(fā)知識(shí)產(chǎn)權(quán)侵權(quán)索賠的風(fēng)險(xiǎn)骇径,而且如果因?yàn)檫@條審核被拒躯肌,除了大篇幅的整改,是沒有其他出路的破衔。
- App 應(yīng)包含功能清女、內(nèi)容和 UI,不要簡(jiǎn)單的做一個(gè)外殼包裝一個(gè)網(wǎng)站晰筛,這樣的應(yīng)用也會(huì)被拒絕
- 不要試圖開發(fā)和AppStore類似的應(yīng)用來推廣其他App嫡丙,這是死路一條。
4.應(yīng)用中包含游戲读第、抽獎(jiǎng)?lì)惢顒?dòng)(如轉(zhuǎn)盤曙博,老虎機(jī)等)的提交審核要非要注意和謹(jǐn)慎,即使抽獎(jiǎng)的籌碼是贈(zèng)送的或是虛擬幣怜瞒、積分等父泳,必須要在正式規(guī)則中注明,并且必須明確表示 Apple 不是贊助者吴汪,也沒有以任何形式參與活動(dòng)惠窄。
5.熱更新,此處無需多言漾橙,最好不要使用杆融。如果非要使用,需要做好混淆霜运,而且能確保審核不被發(fā)現(xiàn)脾歇。這類的被拒條款對(duì)應(yīng)Guideline 2.5.2,遇到這種被拒的反饋觉渴,不要再去嘗試重新提交介劫,需要?jiǎng)h除掉引入的熱更新框架徽惋,并檢查其他第三方的框架是否有使用熱更新案淋,徹底解決之后再提交審核。
6.IPV6的問題险绘。審核團(tuán)隊(duì)是在 IPv6 網(wǎng)絡(luò)上進(jìn)行審核踢京。如果你的 app 無法與 IPv6 尋址功能兼容誉碴,則可能無法通過審核。
7.內(nèi)購(gòu)問題瓣距。這是一個(gè)令人頭疼的問題黔帕,審核團(tuán)隊(duì)對(duì)于接入蘋果內(nèi)購(gòu)的功能和描述審核非常嚴(yán)格,非常多涉及到消費(fèi)支付蹈丸、充值的的應(yīng)用因?yàn)檫@個(gè)問題成黄,審核被卡數(shù)周甚至數(shù)月,簡(jiǎn)直慘不忍睹逻杖。我在這里也將著重的講一下奋岁。
虛擬物品、虛擬服務(wù)荸百、消耗型物品闻伶。按照蘋果的規(guī)定,必須使用IAP(in-App Purchase)支付够话、否則審核將會(huì)被拒絕蓝翰。熟悉的人應(yīng)該知道,蘋果的IAP支付女嘲,操作起來支付結(jié)果回調(diào)的速度遠(yuǎn)比微信/支付寶等第三方支付慢的多畜份,其次是虛擬物品的定價(jià)必須貼合蘋果的規(guī)定,還有就是必須支付30%的分成給蘋果欣尼,所以如果不是蘋果的審核要求漂坏,基本不會(huì)有應(yīng)用會(huì)選擇對(duì)接IAP支付。面對(duì)這么苛刻的要求媒至,很多應(yīng)用通過跳轉(zhuǎn)到H5調(diào)起支付顶别,或者動(dòng)態(tài)入口等方式避開接入IAP支付,但是一旦審核出來拒啰,審核會(huì)被拒驯绎,甚至收到蘋果的應(yīng)用下架通知。那么虛擬物品大致有哪些種類的呢谋旦?我們看下蘋果給出的分類:
- 消耗型項(xiàng)目剩失。就是隨著使用不斷的減少。例如你買了網(wǎng)易新聞的鉆石册着,然后將鉆石打賞給某些人群或者主播拴孤,這就是一個(gè)消耗過程,很明顯這類的項(xiàng)目就屬于消耗型項(xiàng)目
- 非可消耗型項(xiàng)目甲捏。這個(gè)不難理解演熟,就是通過一次購(gòu)買,便擁有了使用權(quán),可以一直使用芒粹,最常見的就是AppSotre購(gòu)買應(yīng)用兄纺、微信里的付費(fèi)表情包等類型消費(fèi)項(xiàng)目
- 自動(dòng)續(xù)訂訂閱。這個(gè)和非可消耗型項(xiàng)目不同的是有失效時(shí)間化漆。比如你在QQ音樂或者騰訊視頻購(gòu)買了一個(gè)月的會(huì)員估脆,在這種模式下,會(huì)員用戶可以享受到非會(huì)員用戶享受不到的服務(wù)座云,會(huì)員快過期是疙赠,會(huì)自動(dòng)續(xù)費(fèi),前提是獲取了用戶同意的朦拖。
- 免費(fèi)訂閱棺聊。免費(fèi)訂閱是開發(fā)人員在“報(bào)刊雜志”中推廣期內(nèi)容的絕佳方式。用戶注冊(cè)免費(fèi)訂閱后贞谓,此訂閱內(nèi)容在與該用戶AppleID相關(guān)聯(lián)的所有設(shè)備上可用限佩。免費(fèi)訂閱不會(huì)過期,并且只能在位于“報(bào)刊雜志”類別的App中提供裸弦。
- 非續(xù)訂訂閱祟同。非續(xù)訂訂閱允許有時(shí)限性的營(yíng)銷服務(wù),對(duì)于App內(nèi)購(gòu)買項(xiàng)目中的限時(shí)訪問內(nèi)容理疙,就需使用費(fèi)續(xù)訂訂閱晕城。例如,騰訊視頻的一月訂閱窖贤,一年訂閱等類似項(xiàng)目
大家在實(shí)際的應(yīng)用提審中可能都會(huì)碰到不是虛擬物品也被要求接入內(nèi)購(gòu)砖顷,這種情況就需要跟審核團(tuán)隊(duì)去申訴,當(dāng)然申訴也是一條艱難的路赃梧,你需要準(zhǔn)備好你的支付業(yè)務(wù)完整的介紹和展示以及證明不是虛擬物品的關(guān)鍵信息滤蝠。
在這個(gè)問題上蘋果是不妥協(xié)的,所以不要抱著僥幸去用第三方的支付的方式購(gòu)買虛擬服務(wù)授嘀。即使你僥幸逃過了審核物咳,也可能會(huì)突然收到蘋果的因?yàn)槟愕腁pp沒有接入IAP支付而給你的通知郵件,如果你不做整改蹄皱,那你的下次提審一定是被拒絕的览闰,這個(gè)是一個(gè)小伙伴真是案例。那大家熟知的社交App微信也在一直積極配合蘋果對(duì)虛擬支付的規(guī)則巷折,并尋求解決方法压鉴。蘋果一出政策,微信就會(huì)調(diào)整锻拘。在小程序誕生之初油吭,微信就在《微信小程序平臺(tái)運(yùn)營(yíng)規(guī)范》里明確表示:iOS系統(tǒng)下,微信小程序暫不得為虛擬物品購(gòu)買提供支付功能。去年5月上鞠,更是發(fā)布明確公告:“除小游戲類目的安卓?jī)?nèi)購(gòu)功能际邻,小程序暫不支持虛擬支付芯丧∩盅郑”
諸如“騰訊視頻”這樣的官方小程序也一樣暫停了iOS端小程序的虛擬支付功能,一視同仁缨恒,沒有例外谴咸。
事實(shí)上,這次規(guī)則調(diào)整早就有所預(yù)示骗露,去年7月下旬岭佳,微信就關(guān)閉了iOS虛擬支付的接口, 從產(chǎn)品層面截?cái)嗔颂摂M支付的路徑萧锉,充分遵守了蘋果相關(guān)規(guī)則珊随。
8.權(quán)限的獲取。app需要使用諸如:定位柿隙、通訊錄叶洞、拍照、相冊(cè)禀崖、麥克風(fēng)等功能時(shí)要通過配置文件去設(shè)置Privacy來獲取權(quán)限衩辟,這種彈窗式的交互,能有效告知用戶獲取某種功能的權(quán)限波附。但是提醒的文案要寫的足夠清晰明白艺晴,否則同樣面臨審核被拒的風(fēng)險(xiǎn)。具體的文案可以參考一些大型線上App的權(quán)限提醒描述掸屡。
9.Apple產(chǎn)品的禁忌封寞。不要將Apple產(chǎn)品作為App中某個(gè)活動(dòng)或者競(jìng)賽的獎(jiǎng)品,否則應(yīng)用審核會(huì)被拒絕仅财。
10.引導(dǎo)下載的問題钥星。App中不能出現(xiàn)引導(dǎo)安裝第三方應(yīng)用的功能或者描述,例如:App在沒有安裝微信的設(shè)備上满着,進(jìn)行微信登錄谦炒,如果提示需要安裝微信,或者去安裝微信等描述风喇,應(yīng)用會(huì)被拒絕宁改。由于微信SDK有提供時(shí)候安裝微信的方法,所以現(xiàn)在通常的方式基本都是在沒安裝微信的設(shè)備上魂莫,你的App是不展示微信登錄入口的还蹲。其他的場(chǎng)景也可參考這種方式
11.iOS13之后的sign in with Apple。如果 app 專門使用第三方或社交登錄服務(wù) (如微信、QQ等) 那你的app 必須同時(shí)提供“通過 Apple 登錄”作為等效選項(xiàng)谜喊。對(duì)于一般業(yè)務(wù)系統(tǒng)來說潭兽,App都是通過第三方登錄之后再通過綁定手機(jī)號(hào)來實(shí)現(xiàn)自己用戶體系的登錄。同樣要留意的是:sign in with Apple的UI設(shè)計(jì)也必須按照蘋果的設(shè)計(jì)規(guī)范
一些總結(jié)
上面列出的是我參與App應(yīng)用提交以來斗遏,遇到過的審核被拒的一些案例分析山卦,當(dāng)然通過整改App最后都通過了審核,也結(jié)合了一些業(yè)內(nèi)小伙伴應(yīng)用被拒的案例诵次。通過分析這些案例和最后的解決方式账蓉,結(jié)合審核指南,可以得到下面一些結(jié)論:
- 無論App開發(fā)還是產(chǎn)品逾一,都應(yīng)該認(rèn)真閱讀審核指南铸本,并記住重要條款。
- 遇到審核被拒了遵堵,一定先要明確被拒原因箱玷,確認(rèn)是違反了條款,要進(jìn)行修改陌宿,同時(shí)也排查app中是否還存在類似問題锡足,修改完成后,再進(jìn)行提交限番。
- 應(yīng)用在集成第三方的SDK或框架時(shí)舱污,一樣要對(duì)第三方SDK中是包含違反審核條款的功能及代碼進(jìn)行排查確認(rèn)。犯錯(cuò)的可能不是你弥虐,但蘋果不會(huì)因此原諒你扩灯。
- 審核時(shí)間長(zhǎng)短可能因 app 而異。正常提交的app霜瘪,50% 的會(huì)在 24 小時(shí)內(nèi)完成審核珠插,超過 90% 的 app 會(huì)在 48 小時(shí)內(nèi)完成審核(該數(shù)據(jù)來自蘋果官方)。多次因同一個(gè)條款被拒絕是最大的禁忌颖对,你的App審核時(shí)間會(huì)更久捻撑,從而失去對(duì)App發(fā)布時(shí)間的控制。
- 在遇到緊急情況的時(shí)候缤底,需要申請(qǐng)加急審核顾患,需要注意以下問題:如果你是為了修復(fù)嚴(yán)重錯(cuò)誤而提交了加急審核申請(qǐng),要在申請(qǐng)中注明在你當(dāng)前版本的 app 中重現(xiàn)錯(cuò)誤的步驟个唧。對(duì)于與活動(dòng)相關(guān)的 app江解,建議在 App Store Connect 中規(guī)劃并安排 app 的發(fā)布。但是徙歼,如果你的 app 仍處于審核階段犁河,而安排的活動(dòng)迫在眉睫鳖枕,可以申請(qǐng)加急 app 審核。提交請(qǐng)求時(shí)桨螺,請(qǐng)務(wù)必提供活動(dòng)事項(xiàng)宾符、活動(dòng)日期以及與相應(yīng) app 之間的關(guān)聯(lián)。這一點(diǎn)非常重要灭翔。
- 如果你認(rèn)為應(yīng)用被拒是審核團(tuán)隊(duì)對(duì) app 的某項(xiàng)功能或技術(shù)實(shí)現(xiàn)理解有誤魏烫,可以就 app 遭拒的情況向 App Review 委員會(huì)提出申訴〔郑可以向 App Review 委員會(huì)提交更多詳細(xì)信息则奥,以幫助他們確定是否應(yīng)重新審核 app考润。
為什么寫
首先要說的是應(yīng)用審核被拒狭园,是很正常的。即使你完全遵照了審核指南的條款糊治,但是Apple持續(xù)更新審核指南以及審核時(shí)對(duì)很多內(nèi)容判斷的主觀性唱矛,都會(huì)造成應(yīng)用被拒絕。就連騰訊在成立iOS預(yù)審團(tuán)隊(duì)之前井辜,iOS月審核通過率也只有35%绎谦。遇到被拒不可怕,只要做好完善的排查和問題定位粥脚,做好預(yù)審窃肠,再進(jìn)行針對(duì)性的修改和申訴,相信問題都會(huì)迎刃而解刷允。希望這篇分享能幫助大家更快的分析定位問題和未雨綢繆冤留,從而更大程度的降低業(yè)務(wù)上線的風(fēng)險(xiǎn)。