LayaNative打包iOS-APP過審經驗分享!
對於HTML5專案,熱更本是它的先天優勢, BUG可隨時修改,新功能更新毫無壓力,給開發者帶來了太多的便利。然而,熱更功能對於iOS-App版本而言,違反了蘋果App Store的規定,可能會導致無法稽核通過。那麼HTML5專案釋出App版本該如何過審呢?
為了幫助廣大開發者,我們將使用LayaAir引擎自研的遊戲專案,通過LayaNative打包iOS-APP進行提審。然後把過審蘋果App Store的經歷與大家做一次分享。
我們曾在iOS-APP過審上的努力
早在2015和2016這兩年裡,Layabox自研的兩款產品,《上吧主公》與《獵刃2》就已經成功的釋出到App Store,成為了當時LayaNative打包APP的成功案例。
然而,2017年開始,隨著蘋果App Store稽核越加嚴格,有一些開發者的專案開始出現稽核無法通過的問題,向我們Layabox團隊尋求幫助,LayaNative引擎組的同學們,在幫助開發者過審的期間,以及自研產品過審期間,也遇到了很多稽核方面問題,甚至付費向第三方團隊尋求過解決方案。總之,在不斷的摸索過程中,我們總結了一條又一條的經驗。
謠傳: Layabox被蘋果拉黑
伴隨著蘋果App Store過審越來越難,今年甚至開始流傳了一個訊息:“據蘋果內部訊息透露,Layabox被拉入黑名單了,肯定過不了審”。傳言給人的感覺是訊息來源很官方,於是不少屢戰屢敗,一直過不了審的開發者紛紛來找我們求證。
真的是這樣嗎?首先,我們告知各位開發者,例如《大天使之劍H5》、《一刀傳世》、《消滅病毒》等等大量LayaAir引擎專案先後都通過LayaNative打包,併成功在蘋果App Store上稽核通過。
為了更加客觀的證明謠言的不真實性,以及親測過審的難度,Layabox秉承著向開發者負責的態度,決定將Layabox自研的兩款專案,以Layabox的企業開發者帳號以及非Layabox的開發者帳號,分別提交蘋果的AppStore稽核,用以消除開發者的顧慮。
APP成功過審,謠言不攻自破
我們選擇的兩款用於App Store過審測試的遊戲,分別是在微信小遊戲中上線的《來呀塗色》和《極速奔跑少年》(APP改名為:跑路的少年)。
其中,《來呀塗色》使用的是Layabox企業開發者賬號釋出。《跑路的少年》使用的是非Layabox開發者賬號釋出。目前兩款專案均成功通過稽核,我們可以在App Store上搜尋下載,如下圖所示。
當然,我們在過審的過程中,也並非是一帆風順,大家可以繼續向下看。
收到2.1大禮包,賬號被Suspended
經過了一週的打包準備,兩款專案是在同一天提交稽核的。
第二天,個人開發者帳號提審的《跑路的少年》就順利通過稽核(這裡不得不佩服,蘋果的稽核效率真是高啊)。但是《來呀塗色》專案狀態仍是等待稽核。當時,我們團隊的心情還是比較複雜的,值得高興的是《跑路的少年》成功通過了稽核,再次證明了LayaNative打包iOS-APP過審不存在技術上的問題,但同時也希望能借此機會,碰到一些開發者反饋的問題,通過我們的解決方案,將過審經驗分享給開發者。
又經過了兩天的等待,“如我們所願”的收到了傳說中的2.1大禮包,如下圖所示,當看到羅列了一堆違反的規定,剛開始,我們也有些無從下手,因為涉及的範圍太廣,並不知道具體是哪條。
由於我們提審的同學對LayaNative以及《來呀塗色》專案的自信,再加上對iOS稽核的經驗不足和對國外文化的理解匱乏,在回覆郵件的時候,語言上沒有注重使用禮貌用語,直接逐條回覆說明專案沒有違反任何規定,請予以重新稽核。
然而,第二天我們的官方賬號就被Suspended(掛起),蘋果稽核團隊開始對賬號進行調查。看到了這種結果,我們有點“受寵若驚”,在通過和同行請教學習後,得知當賬號被審查,如果賬號沒有違規操作的情況一般會在30-45天內恢復正常,而這個時候可以跟蘋果稽核員發郵件進行友好溝通。有經驗的同行還告訴了我們一些關於iOS稽核的注意事項。(在這裡感謝一下請教過的三位朋友)
郵件溝通,帳號解鎖,稽核通過
在請教了有經驗的同行後,我們提審的同學寫了一篇英文版本的郵件與蘋果稽核員進行溝通,郵件的大概內容是:“首先感謝稽核員對中國開發者做出的貢獻,我們非常遺憾沒有通過稽核,我們將會嚴格遵守蘋果稽核制度,維護蘋果的生態。我們的專案是使用JS編寫的,但是我們把JS程式碼和資源都打包到了本地,我們絕不會,也無法在專案稽核通過後,動態修改APP內容,還請稽核員幫我們恢復賬號,再次幫我們稽核或者明確幫我們指出哪條違反了規定,我們將會盡快處理”。
將郵件傳送到appreview@apple.com,除了發郵件的方式,我們還會在蘋果後臺的“聯絡我們”進行溝通,溝通的種類選擇稽核問題,網址如下:
https://developer.apple.com/contact/apple-id/
在發出郵件的第二天,我們收到了蘋果非常官方的回覆,郵件的核心內容就是告訴我們繼續等待。
雖然蘋果官方的迴應是我們無需任何操作,讓我們耐心等待,但是我們的提審同學還是每隔3-5天給蘋果發一次郵件,進行友好的溝通,中間的目的除了證明我們沒有任何違規的操作,還希望稽核團隊別把我們忘了。
經過了一個多月的努力,官方賬號終於審查完畢,《來呀塗色》專案從2.1大禮包變成了4.3,瞭解蘋果稽核的人都知道4.3是copyleft問題,到了這個時候,我們也是稍微喜悅了一番,因為該專案我們沒有涉及到任何抄襲、版權問題。於是,我們重新提交專案,並在附件中把《來呀塗色》的《軟體著作權》作為附件上傳。
經過兩天的稽核期,Layabox官方企業開發者帳號的《來呀塗色》專案,最終也成功通過iOS稽核。
此次由提審至通過,歷時兩個月,中間受挫的過程中,我們對LayaNative以及專案全都有著足夠的信心,從第一次提交ipa包到最終的稽核通過,中間沒有修改過任何程式碼。而是儘可能請教有經驗的同行,嘗試過審的方案,也非常慶幸的最終通過了蘋果App Store稽核。
蘋果App Store過審經驗彙總
除了上面講述到的兩款專案過審經歷,我們還將曾經幫其它開發者過審的經驗以及我們請教同行獲得的經驗,彙總到一起,與廣大開發者分享,希望能幫助到大家儘快通過App Store稽核。
首先我們要知道蘋果最敏感的三個事項,自己做分發平臺、跳出IAP使用外部連結充值、程式碼熱更新,如果開發者的專案違反了這三個原則那基本上你的專案無法通過稽核。在這裡我們提倡開發者嚴格遵守蘋果的規則,維護蘋果的生態,正確使用LayaNative引擎。
具體經驗如下:
- 專案的前30分鐘不要有任何從網路上載入的情況,將資源打包到本地,JS程式碼不要有熱更新行為,目前蘋果稽核非常快,大家還是要嚴格遵守蘋果的規定。
- 使用美國的網路,用英文系統測試一下,IPV6的網路環境,千萬別出現網路錯誤等情況,否則會給稽核員造成不好的印象。
- ICON圖、專案描述、五圖要規矩,別有敏感詞語,別和其他APP相似,也別想著通過搜尋關鍵詞關聯到其他APP(例如搜尋其他遊戲名字,搜尋到你們的遊戲),這些是最基本資訊,蘋果有掃描機制,這幾塊有不合格的直接PASS。
- 別有外部連結,連結到自己的官網上。
- 使用者隱私協議,直接用文字方式,也別有連結,用最簡單的方式。
- 隱私協議,標註公司主體,並且和AppID的公司一致。
- APP千萬別有Bug,不要用測試服、內測服等字樣。
- 千萬別想著有違規行為,例如熱更、外部連結充值、做平臺、馬甲包等問題。
- 如果拿到了2.1大禮包,先要逐條確認是否真的沒有違反條例,如果確認沒有問題,這個時候一定要準備英文郵件回覆,回覆的時候要一定要禮貌謙卑,使用一些類似這樣的話:“非常遺憾沒有通過蘋果稽核,我們通過努力排查,努力配合,希望能夠幫忙再次稽核。”,多用一些感謝您對蘋果生態做出貢獻,感謝、遺憾等禮貌和謙卑用語。即使你的專案JS程式碼打包到了本地,還是有可能被蘋果誤傷,這個時候我們要理解蘋果稽核機制,稽核員承受的風險比較大,他們是寧可錯殺一千也不肯放過一個的態度。
- 如果你的賬號不小心處於調查狀態,你確定沒有違規行為,要不斷的進行友好的溝通,一般會在一個半月左右恢復。
- 如果收到了違反4.3規定,可以將專案的軟著作為附件提交。
寫在最後
最後預祝所有開發者的合規專案都能順利通過稽核,LayaNative後續也會進行update,使用技術手段禁止開發者熱更新JS的行為,嚴格遵循蘋果的制度,保護合規的專案。
來源:Layabox
原文:https://mp.weixin.qq.com/s/7iB4BZiKUXvPCjmgX-vHIg
相關文章
- 6條經過驗證的創業經驗分享創業
- 進行了1000多次程式碼評審的經驗分享 - DEVdev
- 華為 OD 過了,經驗貼分享
- 經驗分享
- 過來人的自學python經驗分享Python
- 一份經過時間檢驗的 Laravel PHPUnit 測試經驗分享LaravelPHP
- Polymer使用經驗分享
- 【高中經驗分享】2021.11.29
- 分享5款經過時間驗證的精品軟體
- 分享一次排查CLOSE_WAIT過多的經驗AI
- 分享抖音交流經驗
- 徵求護眼經驗分享
- 遊引力出海經驗分享
- DDD經驗:分享工作,分享決策 – Jessitron
- 全棧交叉編譯X86完成過程經驗分享全棧編譯
- TypeScript 重構 Axios 經驗分享TypeScriptiOS
- Native轉型Flutter經驗分享Flutter
- 考研經驗分享(上岸南理工)
- 封裝 avm 元件經驗分享封裝元件
- 精益生產經驗分享
- C# 學習經驗分享C#
- .NET8.0 AOT 經驗分享 FreeSql/FreeRedis/FreeScheduler 均已透過測試SQLRedis
- mysql分頁時offset過大的Sql最佳化經驗分享MySql
- HomeAway分享雲端事件溯源經驗事件
- Netflix採用GraphQL的經驗分享
- OB導數工具使用經驗分享
- 企業安全實踐經驗分享
- GitHub CSP應用的經驗分享Github
- 分享net面試題和經驗面試題
- MySQL從庫維護經驗分享MySql
- Android大廠面試經驗分享Android面試
- 【乾貨】BAT面試經驗分享BAT面試
- .NET 6 Minimal API 的經驗分享API
- 儲存程式和程式控制:開發經驗分享及操作過程詳解
- 深度學習模型設計經驗分享深度學習模型
- 經驗分享:eBay的API智慧設計API
- 2020計算機保研經驗分享計算機
- Scrum與OKR融合實踐經驗分享ScrumOKR