蘋果應用商店的稽核流程是為了確保生態體系的健康,將低質量和惡意的應用排除在外。總體而言,這種做法是行之有效的。可是有時候應用被拒的原因有些令人莫名其妙,以下是Xamarin的聯合創始人及CEO
Nat Friedman總結的9個拒絕理由。

1.“beta”是敏感詞

Google把釋出模糊的“beta”服務變成行業慣例,但是蘋果對此卻要求嚴格。如果應用名字裡面有“Beta”、“Preview”甚至“0.9版”之類表明應用尚未準備就緒的詞語,那應用就有可能被拒。

2.載入時間過長

所有移動作業系統(iOS、Android甚至Windows)都對啟動時間有要求。iOS的最高啟動時間是15秒,如果應用不達標,OS會把它幹掉。

但是,哪怕應用在本地測試時啟動時間符合要求,網路慢、硬體慢等不同的環境因素也可能導致應用在接受稽核時啟動過慢。因此不要僅僅依賴iOS模擬器,要在實際硬體中對應用進行測試,最好拿一些老一點的手機去試,這樣才能確保所有使用者的啟動時間符合要求。

請記住,應用的啟動時間是給使用者留下印象的第一個機會。

3.連結到外部支付方式

蘋果要求所有的數字內容都要在內建的iTunes元以內銷售機制中售賣。無論是一次性購買或者訂購模式均如此。違反這一原則,應用必被斃掉無疑。Kindle應用不允許使用者購買新書的原因也是如此。

有一點值得注意,蘋果甚至連應用中有到外部支付機制的網頁連結也不行。比較出名的例子是Dropbox—因為其基於web的登入螢幕含有購買額外空間的連線而被拒。而且受影響的不僅僅是Dropbox應用,甚至使用Dropbox SDK的也遭了殃。

因此,一定要確保應用的所有購買都是通過iTunes賬號進行的。不過,非數字服務或商品屬於例外,比方說通過應用訂房就可以。

4.不要提支援其他平臺

如果你的應用也支援Windows或Android,在你自己的網站上面說,不要在應用或應用商店上提,如果上面出現競爭對手的名字,蘋果會很生氣。

5.本地化問題

應用的使用者是全球性的。如果應用沒有針對多種語言進行本地化,那會顯得比較業餘。利用NSNumberFormatter或Invariant Culture 之類的擴充套件以及模擬器來測試不同地方的使用者體驗,從而確保日期等資料符合使用者所在地區。

比方說曾經有歐洲的應用因為不能處理負值的經緯度而被拒。

6.儲存與檔案系統的不當使用

iOS 5.1釋出不久,蘋果曾經拒絕了某個應用的更新,因為開發者將2MB的資料庫加壓到檔案系統中,違背了iCloud只備份使用者生成內容的原則。

任何可再生或可從遠端伺服器重新下載的資料都不應該備份。非使用者資料最好找個快取的地方,或者標記為“不備份”屬性。

7.因為使用者拒絕授權而崩潰

在iOS 6中,只有使用者許可後使用者才能訪問地址簿、相簿、方位、日曆、藍芽、Twitter及Facebook的賬號。如果使用者選擇禁止應用訪問這些服務,那麼應用的功能就有可能執行不正確。而功能執行不正確會引起蘋果自動拒絕應用通過。開發者應該測試使用者“允許”和“不允許”使用各種資料的情況,包括使用者一開始允許後面有改為不允許的情況,確保應用在各種情況下都能運轉正常。

8.圖示、按鈕使用不當

許多iOS應用被拒往往不是因為效能或功能問題,而是因為UI方面的小毛病。需熟知《蘋果人機介面指南》,可利用標準的UIButtonBarSystemItem來要確保內建圖示和按鈕外觀風格統一。

比方說,不要把“排版”圖示用到非內容創作的應用上。蘋果工程師希望應用的行為是可預測的,因此對這方面加以限制也是可以理解的。

9.誤用商標和標誌

不要在應用或產品圖片中使用商標或蘋果圖示、標誌。甚至畫有iPhone的圖示也不能用。應用的關鍵字含有商標的應用也曾被拒過。

不過被拒了也別慌,改正問題重新提交就是了。在緊急情況下,蘋果還有加急的稽核流程,可適用於關鍵bug修補或者安全問題。不過這一流程也不要濫用,否則你的應用從此會被蘋果拒之門外。

未雨綢繆總好過亡羊補牢。請仔細研究提交指南,把精力投入到開發高品質的應用上。使用者會感激你的。

文章來自:36kr