那些年提交AppStore審核踩過的坑!

來源: 云峰小羅
作者:羅序斌
時(shí)間:2020-12-30
17551
本文主要想以自己的親身經(jīng)歷,跟大家回顧一下這些年提交AppStore審核時(shí)踩過的坑,并且針對(duì)如何避免給出一些tips供大家參考。

640.webp.jpg

做iOS開發(fā)近5年了,每次提交版本時(shí)不可謂不小心翼翼,如履薄冰,但是還是難免踩到了一些坑。蘋果的官方文檔(AppStore審核條款)這里就不羅列了,太冗長(zhǎng)繁瑣了,而且大部分是一般app都不會(huì)觸碰的到的,今天我主要想以自己的親身經(jīng)歷,跟大家回顧一下這些年我提交AppStore審核時(shí)踩過的坑,并且針對(duì)如何避免給出一些tips供大家參考。

1、未遵守蘋果iOS APP數(shù)據(jù)儲(chǔ)存指導(dǎo)方針。

如果你的App有離線數(shù)據(jù)下載功能,尤其需要關(guān)注這一點(diǎn)。因?yàn)殡x線數(shù)據(jù)一般占用存儲(chǔ)空間比較大,可以被重新下載和重建,但是用戶往往希望系統(tǒng)存儲(chǔ)空間緊時(shí)也依然能夠妥妥的存在著,不會(huì)被IOS系統(tǒng)自動(dòng)清理掉。所以不能放在/Library/Caches目錄下(該目錄在系統(tǒng)空間緊張時(shí)可能會(huì)被iOS系統(tǒng)清除)。那就只能放在主目錄/Documents或主目錄/Library/自定義文件夾下,這樣才不會(huì)被iOS系統(tǒng)自動(dòng)清理掉。但是這些數(shù)據(jù)可能會(huì)很大,如果放在主目錄/Documents或主目錄/Library/自定義的文件夾下,會(huì)被iCoud自動(dòng)同步,那么用戶需要為了同步消耗不少流量,蘋果可能會(huì)因此拒絕你的應(yīng)用上架。所以需要在程序中給自定義的目錄設(shè)置“do not backup”屬性。

關(guān)于數(shù)據(jù)存儲(chǔ)需要注意的點(diǎn),總結(jié)在下面:

關(guān)鍵數(shù)據(jù)

內(nèi)容:用戶創(chuàng)建的數(shù)據(jù)文件,無法在刪除后自動(dòng)重新創(chuàng)建

路徑:主目錄/Documents

管理:iOS系統(tǒng)即時(shí)遇到存儲(chǔ)空間不足的情況下,也不會(huì)清除,同時(shí)會(huì)備份到iTunes或iCloud中

緩存數(shù)據(jù)

內(nèi)容:可用于離線環(huán)境,可被重復(fù)下載重復(fù)生成,即使在離線時(shí)缺失,應(yīng)用本身也可以正常運(yùn)行

路徑:主目錄/Library/Caches

管理:在存儲(chǔ)空間不足的情況下,會(huì)清空,并且不會(huì)被自動(dòng)備份到iTunes和iCloud中

臨時(shí)數(shù)據(jù)

內(nèi)容:應(yīng)用運(yùn)行時(shí),為完成某個(gè)內(nèi)部操作臨時(shí)生成的文件

路徑:主目錄/tmp

管理:隨時(shí)可能被iOS系統(tǒng)清除,且不會(huì)自動(dòng)備份到iTunes和iCloud,盡量在文件不再使用時(shí),應(yīng)用自己清空,避免對(duì)用戶設(shè)備空間的浪費(fèi)

離線數(shù)據(jù)

內(nèi)容:與緩存數(shù)據(jù)類似,可以被重新下載和重建,但是用戶往往希望這些數(shù)據(jù)即使在存儲(chǔ)緊張時(shí)也不會(huì)被系統(tǒng)自動(dòng)刪除

目錄:主目錄/Documents或主目錄/Library/自定義的文件夾

管理:與關(guān)鍵數(shù)據(jù)類似,即使在存儲(chǔ)空間不足的情況下也不會(huì)被清除,應(yīng)用自己應(yīng)該清除已經(jīng)不再使用的文件,以免浪費(fèi)用戶設(shè)備空間。需要設(shè)置”不備份到iCoud",否則會(huì)審核不過。

2、未提供測(cè)試賬號(hào)

如果你的App有部分功能需要登錄才能使用,那么你需要再提交審核時(shí),勾選演示賬戶,并提供對(duì)應(yīng)信息,如下圖:

640.webp (1).jpg

現(xiàn)在很多app為了更方便快捷,防止用戶忘記密碼,都采用手機(jī)號(hào)+驗(yàn)證碼的方式,這樣的話就沒有辦法給蘋果提供演示賬戶了,除非賬戶系統(tǒng)后臺(tái)做修改提供支持。這種情況,就不需要勾選演示賬戶了,但是要在備注信息里跟蘋果好好解釋一下,說我們也是為了提升用戶體驗(yàn)的,所以對(duì)賬戶系統(tǒng)做了改進(jìn),用戶有手機(jī)就能登錄,不需要注冊(cè)啥的,如下圖。如果你啥也不說的話,那就乖乖等著被拒吧。

640.webp (2).jpg

3、跟相關(guān)硬件配合使用的app,未提供演示視頻。

這里指的硬件是不需要MFi認(rèn)證的,通過BLE(低功耗藍(lán)牙)或者WiFi連接的硬件。直接在備注里提供相關(guān)功能的演示視頻即可,如下圖。

640.webp (4).jpg

演示視頻需要把完整的連接過程操作以及連接硬件之后跟硬件相關(guān)的功能演示都包含在內(nèi)。從截圖可以看到我的“褲寶”演示視頻我是直接放在優(yōu)酷上了。所以并不像傳聞中那樣,需要翻墻放到Y(jié)ouTube上,直接放優(yōu)酷土豆或者百度網(wǎng)盤都行。也不需要用英文,用中文即可。

4、跟相關(guān)硬件配合使用的app,未提供PPID.(Product Plan ID)

如果你的App是需要跟通過MFi認(rèn)證的硬件進(jìn)行交互,即使用了EA框架(ExternalAccessory.framework),配置了協(xié)議字符串(Supported external accessory protocols),那么你需要在備注信息里提供PPID。

640.webp (5).jpg

很多時(shí)候,我們的App可以同時(shí)適配很多型號(hào)的硬件,每個(gè)型號(hào)的硬件對(duì)應(yīng)的PPID不一樣。如果AppStore提交審核通過之后,又新增了一款型號(hào)硬件支持怎么辦呢?是否需要單獨(dú)發(fā)一個(gè)版本,把對(duì)應(yīng)的PPID增加上去了?答案是不需要,因?yàn)锳pp支持的PPID列表信息是放在備注信息里面的,往列表中新增PPID并不需要修改到二進(jìn)制文件信息,蘋果在這里也比較人性化,可以在不提交新版本的情況下增加PPID信息。

5、使用了后臺(tái)定位服務(wù),但是沒有具體說明原因

之前使用后臺(tái)定位功能的app都是只需要在在Info.plist中配置Required background modes-App registers for location updates即可.但是從2016年的某個(gè)時(shí)候開始蘋果突然要求如果App要使用定位功能,除了程序里做配置,還需要在界面上顯式告訴用戶你的后臺(tái)定位是用來干啥的,否則你就會(huì)收到類似下面的郵件。

1.1-Apps using background location services must provide a reason that clarifies the purpose of the use,using mechanisms described in the Human Interface Guidelines.

要修改也可以簡(jiǎn)單,根據(jù)你的app需要在info.plist中配置,NSLocationAlwaysUsageDescription或者NSLocationWhenInUseUsageDescription字段說明。如下圖

640.webp (6).jpg

6、上傳的屏幕快照跟App具體使用截屏相差太遠(yuǎn)

AppStore提供的屏幕快照功能是為了用戶在未下載時(shí)可以直觀的了解這個(gè)App的功能、界面大概是什么樣的。所以蘋果也允許開發(fā)者對(duì)屏幕截屏做一些加工美化,并不一定要是原始截屏。但是這里有個(gè)限度,就是不能相差太遠(yuǎn),具體尺度蘋果沒有給出量化標(biāo)準(zhǔn)。公司項(xiàng)目中有個(gè)大版本上線了一個(gè)比較大的新功能,為了突出宣傳這個(gè)功能,設(shè)計(jì)師就重新設(shè)計(jì)了一套非常Q版的功能演示截圖。結(jié)果上傳后被蘋果告知,屏幕快照不符合App本身的功能。

以上這些是本人在AppStore審核時(shí)親自踩過的一些坑,當(dāng)然還有很多坑,我和我的團(tuán)隊(duì)注意到了所以努力避免了,但是個(gè)人認(rèn)為也是非常需要注意的,我簡(jiǎn)單列在下面供大家參考。

·使用未公開的API被發(fā)現(xiàn)

·使用和系統(tǒng)接近的圖標(biāo)

·界面太丑或者交互太過復(fù)雜

·不穩(wěn)定,容易崩潰

·跟應(yīng)用市場(chǎng)上其他App太過雷同

·App內(nèi)有檢測(cè)更新

·出現(xiàn)第三方操作系統(tǒng)的名字或圖標(biāo)

·測(cè)試不充分,某些App聲明支持的操作系統(tǒng)版本有兼容性問題

640.webp (7).jpg

我們說了這么多踩過的坑,或者差點(diǎn)踩過的坑,無非就是想在以后App開發(fā)中盡可能的避免。這里介紹本人的一些經(jīng)驗(yàn)總結(jié),供大家參考。

1、預(yù)防在先

對(duì)產(chǎn)品經(jīng)理規(guī)劃的功能,首先需要判斷是否在技術(shù)上可以實(shí)現(xiàn),或者說在不使用非公開API的前提下實(shí)現(xiàn)。因?yàn)楹芏鄷r(shí)候,即使你通過函數(shù)名動(dòng)態(tài)拼接等技術(shù)手段在提交審核時(shí)躲過API掃描,但是也難免被蘋果從功能上發(fā)現(xiàn)或者被競(jìng)爭(zhēng)對(duì)手舉報(bào)。然后對(duì)交互設(shè)計(jì)和UI效果圖需要有自己的判斷,界面不能太丑,交互不能太復(fù)雜,不能使用跟系統(tǒng)太過雷同的Icon。

2、發(fā)版前過checklist

每個(gè)項(xiàng)目都需要沉淀發(fā)版前的checklist,把之前踩過的坑進(jìn)行備忘,也可以通過網(wǎng)絡(luò)資訊等手段了解最近時(shí)間被拒的一些主要原因,把可能跟自己APP相關(guān)的部分進(jìn)行備注,然后在發(fā)版前逐條檢查一遍。

3、預(yù)提交AppStore審核

如果也預(yù)防了,發(fā)版前也過了checklist,但是有時(shí)候還是難免百密一疏有所遺漏,特別是新功能較多的版本。這里我要重點(diǎn)推薦的就是預(yù)提交AppStore審核。項(xiàng)目的版本都是有發(fā)版周期的,一般在發(fā)版前一周左右App版本基本穩(wěn)定,只是還需要修改一些bug并回歸測(cè)試。這個(gè)時(shí)候完全可以先提交一個(gè)版本到AppStore去審核,反正版本號(hào)是用不完的,只要不占用產(chǎn)品經(jīng)理定的版本號(hào)就行。預(yù)提交審核有什么好處呢?

(1)可以幫助暴露潛在的問題。

這個(gè)版本可能開發(fā)了一些新功能,然后有些地方可能沒有考慮到審核相關(guān)的風(fēng)險(xiǎn)。如果等待項(xiàng)目都要結(jié)束正式發(fā)版時(shí)才暴露出來,就追悔莫及了。

(2)在迫不得已的情況下,可以試探一下蘋果的界限。

蘋果審核條款其實(shí)很多時(shí)候是沒有一個(gè)量化標(biāo)準(zhǔn)的,比如屏幕快照不能跟App具體使用時(shí)的截屏相差太遠(yuǎn),拿到UI設(shè)計(jì)師給到屏幕快照時(shí),我們有時(shí)候也沒有辦法確定到底是否真的符合蘋果的規(guī)范,但是沒有關(guān)系,我們先提交一個(gè)版本試一試就知道了;還有再比如前段時(shí)間,蘋果要求6月1號(hào)以后提交的App都要支持IPV6-Only的網(wǎng)絡(luò)。但是由于歷史原因,項(xiàng)目中有個(gè)功能用的是第三方的SDK,他們沒有辦法在我們發(fā)版前提供新的支持IPV6的版本。然后我看網(wǎng)上也有人分享說蘋果對(duì)這個(gè)要求并不是非常嚴(yán)格,只需要在iOS9下主要功能能支持IPV6就行了。當(dāng)然作為項(xiàng)目負(fù)責(zé)人,肯定也不能說直接把這個(gè)功能砍掉不要了,亦或輕信網(wǎng)友所言忽視風(fēng)險(xiǎn)。怎么辦呢?趕緊先預(yù)提交一個(gè)版本試一下再做決定。結(jié)果是確實(shí)可以通過審核,所以最終版本沒有砍掉這個(gè)功能,保證了產(chǎn)品的完整性上線了。

4、關(guān)于AppStore加急審核

如果經(jīng)過前面的努力,你還是被拒了,或者App的發(fā)布要趕上某個(gè)時(shí)間運(yùn)營(yíng)節(jié)點(diǎn),但是由于各種原因?qū)е骂A(yù)留給App審核的時(shí)間太少了。這個(gè)時(shí)候你需要使用到蘋果的加急審核通道。

你在百度里搜索iOS加急審核,你會(huì)發(fā)現(xiàn)有很多宣稱可以幫你快速審核的人,24小時(shí)通過審核,審核通過后付款,不通過不要錢。如果你不知道蘋果有官方的加急審核功能,你就很容易被這些空手套白狼的人所騙,而且收費(fèi)都是5000RMB起步。

蘋果的加急審核如何使用呢?在iTunesconnect頁(yè)面,點(diǎn)擊右上角的“?”圖標(biāo),在彈出菜單中選擇“聯(lián)系我們”,

640.webp (8).jpg

然后在Contact Us頁(yè)面,選擇“App Review”—>“App Store Review”—>”Request Expedited Review”,

640.webp (9).jpg

最后在表格里填寫相關(guān)信息,其中最重要的寫你需要加急審核的原因。一般是寫要趕某個(gè)重大節(jié)日運(yùn)營(yíng)節(jié)點(diǎn),或者緊急修復(fù)某個(gè)嚴(yán)重的閃退問題,然后注明閃退現(xiàn)象復(fù)現(xiàn)的詳細(xì)步驟,就可以了。

關(guān)于具體加急審核有沒有次數(shù)限制,次數(shù)是跟App相關(guān)還是跟開發(fā)賬號(hào)相關(guān),蘋果并沒有官方的說明。但是可以肯定的是,網(wǎng)上傳聞一年只有兩次加急審核的機(jī)會(huì)是不正確的。不過為了讓好鋼用在刀刃上,還是慎用這個(gè)功能,以防到時(shí)真的有需要加急審核時(shí)卻得不到響應(yīng)。

從今年上半年開始,app審核時(shí)間大大縮短了,一般都不需要用到這個(gè)功能了。百度CarLife最近幾個(gè)版本都是3天就通過審核了,尤其是最新的支持EAP連接的版本V2.1.0,一個(gè)晚上就審核通過了。

毛主席告訴我們“與天奮斗,其樂無窮!與地奮斗,其樂無窮!與人奮斗,其樂無窮!”,但是作為iOS開發(fā)者,跟蘋果奮斗,還是小心謹(jǐn)慎為好。最后提一句,如果你知道你的app存在某個(gè)審核風(fēng)險(xiǎn),但是通過了蘋果審核,那么不要存在僥幸心理,請(qǐng)盡快修改。因?yàn)楫吘固O果是人工審核,這個(gè)版本過了可能是審核人員心情好,并不代表下個(gè)版本審核時(shí)心情也這么好。

其實(shí)想想最近的廣電總局手游審查新政,對(duì)AppStore的審核規(guī)則也就沒有啥可以抱怨的了。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于云峰小羅,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
法院推翻裁決,蘋果在巴西暫時(shí)不用開放App Store
法院推翻裁決,蘋果在巴西暫時(shí)不用開放App Store
今年11月,巴西監(jiān)管機(jī)構(gòu)裁決蘋果不得阻止開發(fā)者在巴西App Store外部分發(fā)應(yīng)用,要求蘋果在20天內(nèi)允許使用替代支付系統(tǒng)和側(cè)載,否則將面臨每天25萬雷亞爾(當(dāng)前約30.2萬元)的罰款。
App Store
巴西市場(chǎng)
蘋果
2024-12-112024-12-11
蘋果提醒開發(fā)者:臨近圣誕節(jié),App Store應(yīng)用審核時(shí)間可能延長(zhǎng)
蘋果提醒開發(fā)者:臨近圣誕節(jié),App Store應(yīng)用審核時(shí)間可能延長(zhǎng)
蘋果公司今日通知開發(fā)者,隨著圣誕節(jié)的臨近,App Store的審核時(shí)間可能會(huì)增加。蘋果建議開發(fā)者開始更新他們的應(yīng)用程序和游戲,為假日季做好準(zhǔn)備。
App Store
開發(fā)者
蘋果
2024-12-052024-12-05
ASO必讀:影響應(yīng)用商店中App排名的關(guān)鍵因素
ASO必讀:影響應(yīng)用商店中App排名的關(guān)鍵因素
在當(dāng)今數(shù)字化時(shí)代,應(yīng)用已成為我們生活中不可或缺的一部分。應(yīng)用商店中有數(shù)以百萬計(jì)的應(yīng)用程序,對(duì)于應(yīng)用開發(fā)者來說,了解影響其應(yīng)用排名的因素至關(guān)重要。
ASO
App
應(yīng)用商店
2024-11-072024-11-07
歐盟地區(qū)App Store商業(yè)應(yīng)用開發(fā)者,即日起需提供交易者身份資訊
歐盟地區(qū)App Store商業(yè)應(yīng)用開發(fā)者,即日起需提供交易者身份資訊
應(yīng)對(duì)歐盟頒布的《數(shù)字服務(wù)法》,Apple要求在歐盟App Store發(fā)布應(yīng)用程序的開發(fā)者必須提供交易者(Trader)身份資訊。
App Store
開發(fā)者
2024-10-232024-10-23
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家