蘋果應用商店的審核流程是為了確保生態體系的健康,將低質量和惡意的應用排除在外?傮w而言,這種做法是行之有效的。可是有時候應用被拒的原因有些令人莫名其妙,以下是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修補或者安全問題。不過這一流程也不要濫用,否則你的應用從此會被蘋果拒之門外。
未雨綢繆總好過亡羊補牢。請仔細研究提交指南,把精力投入到開發高品質的應用上。用戶會感激你的。