天天看點

聊聊與蘋果稽核員的愛恨情仇(上)

事情經過

最近我司研發的手遊快要上線了,這個手遊呢是基于現在非常流行的虛幻引擎 UE4 開發的,公司也是傾注了所有的人力和财力,是以我們整個公司都對它抱有非常大的期望。

項目組嘔心瀝血了 3 年多,終于在今年的 11 月份準備開始對外測試,我們也似乎看到了項目成功前的曙光,一款爆款手遊馬上就要誕生啦!加薪,獎金,走向人生巅峰等等,想想就另人激動。

聊聊與蘋果稽核員的愛恨情仇(上)

iOS 端測試我們是通過 Apple 它自己的 TestFlight 平台來進行分發,前期統計好測試人員的郵箱後,統一在開服當天激活測試。

TestFlight 測試完成的挺順利,但令人糟心的事才剛剛開始。

聊聊與蘋果稽核員的愛恨情仇(上)

正常情況下,我們都是TF測試和正式提審同時進行的,問題就出現在正式的提審環節。

送出稽核後沒過多久,我們就收到了應用程式被拒的消息,大意是他們稽核人員連接配接不上我們的遊戲伺服器,是以無法進行後續的稽核。這對我們遊戲行業來說再正常不過了,也許是運維部署的時候配置檔案少配了,因為它送出稽核的時候要求稽核服需要一個純淨的環境,是以我們正常都是部署倆套的服務,TF測試一套和稽核服一套。

自然而然運維就要背鍋了,項目組拉上測試組在裝置上裝了開發包後,想重制這個 Bug,可是反複測試後發現無論是用 4G,WIFI 或者是找海外的同僚協助測試,結果都是能進遊戲服的。

這就讓人頭疼了,手遊項目我司也不是隻有這一個,怎麼就單單就 UE4 被卡脖子了呢!

聊聊與蘋果稽核員的愛恨情仇(上)

解決這個問題的重擔自然而然的就落在了我們 iOS 組身上。首先,我開始在 Google 上瘋狂的搜集資訊,因為現在市面上用 UE 做的手遊産品還很少,并沒有太多可以避坑的指南,其次,我們還分析是不是因為前段時間 Apple 與 Epic 之間的官司,導緻了 Apple 對 Epic 的産品做了黑名單。

聊聊與蘋果稽核員的愛恨情仇(上)

但是經過細心的搜尋之後,我們搜尋到一些線索。其實,在 Apple 的開發者論壇中類似這樣的文章有很多,但是也并沒有實質性的解決方案,如圖:

聊聊與蘋果稽核員的愛恨情仇(上)

還有人說他将網絡傳輸協定從 UDP 改成 TCP 後,就通過了蘋果的稽核;于是,我找到項目的主程-社會王,讓他修改網絡協定,聽完我的話後,社會王連忙搖頭直呼改不了,改引擎的網絡架構太複雜了,那這條路看來是走不了了,那就繼續埋頭找解決方案吧!。

聊聊與蘋果稽核員的愛恨情仇(上)

我假設 Apple 的網絡有白名單,黑名單,那它肯定有一份對外的文檔給開發者看吧!抱着試試的心态,Google 了一下 Apple UDP TCP,不出所料,真有這樣的一個文檔說明,文檔位址為:​​support.apple.com/en-us/HT202…​​

聊聊與蘋果稽核員的愛恨情仇(上)

這個文檔裡面詳細的介紹了 Apple 應用程式開發時該使用的有效端口号範圍:

聊聊與蘋果稽核員的愛恨情仇(上)

有些是蘋果自己的産品使用的端口說明,那我們就挑它沒有說明的端口使用不就行了嗎?于是,我自信滿滿的找到社會王并說了這個解決方案,社會王深邃的黑眼圈瞬間光彩奪目了起來,立馬抄起鍵盤噼裡啪啦的敲了起來,把用戶端的端口号改在了 49152 - 65535 之間,這下子應該沒問題來吧,我們都按照它的文檔來做了,總能通過稽核了吧。我高高興興的送出了新版本,今天可以準點下班了。

聊聊與蘋果稽核員的愛恨情仇(上)

美美的睡了一覺後,打開手機就是應用被拒的消息,還是連不上伺服器,這大清早的開頭就是暴擊,差點把我擊昏在床上,瞬間像洩了氣的皮球,我把被拒消息發給社會王後,社會王久久沒有給我回資訊,我一度以為他已經被擊昏在床上了,差點去他家敲門。沒想到我剛到公司,就看到社會王已經在電腦前改 Bug 了,看來主程的心态确實好,抗打擊能力确實比我這種菜雞強。

聊聊與蘋果稽核員的愛恨情仇(上)

看似所有的路都走不通了,咋整啊!期間衆說紛纭,有以下這些版本,大家可以分析一下有沒有道理,反正我沒有求證過。

第一個版本

有人說是疫情導緻了蘋果的稽核人員有一部分人會在家辦公,他們的代理網絡會把請求的端口轉發,進而會導緻端口号不在這個範圍内。

關于這一點,我覺的有點胡扯。

第二個版本

有人分析說是因為蘋果要求我們的伺服器都要支援 ipv6,如果不支援的話,我們的雲服務中間商會将 ipv6 的網絡适配成 ipv4 ,這會導緻端口的範圍會改變,進而不能確定在有效的範圍内,如果運氣好的話,可能轉換的結果就在有效範圍内,反之就不在,導緻稽核人員連不上遊戲伺服器。

聊聊與蘋果稽核員的愛恨情仇(上)

這一說法,我感覺還有點可信度,解決辦法就需要把我們的遊戲伺服器改成支援 ipv6,但這一點,我沒有去向運維考證。

就這樣,因為進不去遊戲伺服器,我們的稽核被卡了将近2個月,可以來欣賞一下我們的打回記錄:

聊聊與蘋果稽核員的愛恨情仇(上)

後序

我寫這篇文章的原因也是因為這個奇葩的事情把我折騰的夠嗆。既然你稽核過不了,那我咨詢你技術專家可以吧!蘋果開發者賬号每年有倆次技術咨詢的機會,于是我誠意滿滿的用谷歌翻譯給 Apple 的技術支援寫了封郵件。

沒想到的是,Apple居然回信給我,大意是他們支援中文支援,可以用中文重新給他們闡述問題,于是我又重新用中文發了一遍。

但是,重點來了,他居然給我回複說他處理不了這個技術問題,這個不是他們的技術支援範圍。

這一下子給我整蒙圈了,雖然我尋求幫助的次數不多,但我也不是第一次請求技術支援,這麼奇葩的回複我還是第一次遇到,哈哈,給我整笑了,我都不知道該怎麼回複他。

聊聊與蘋果稽核員的愛恨情仇(上)

原本我以為我可能因為解決不了問題,要被社會王開除了,抱着僥幸的心理,要不再提一下吧!說不定換稽核員了。

重點來了,特麼的這次稽核居然進遊戲了,肯定是我感動了蘋果爸爸,雖然還是因為内購的原因被拒,但是能進遊戲就讓我看到了希望,我立馬把結果通知了社會王,并狠狠的吹噓了一下自己是如何滴優秀,社會王表示"小夥子幹的不錯,以後遊戲掙錢了,給你記一大功"。

聊聊與蘋果稽核員的愛恨情仇(上)

好吧,既然能進遊戲了,那這問題就清晰的多了,肯定不是我們遊戲的問題了,等社會王出好包以後,我興高采烈的進行了第 N 次提審。

但是,今天又收到了這樣的被拒消息:

聊聊與蘋果稽核員的愛恨情仇(上)

我特意給自己用同樣的包發了個 TF 測試,測試并無任何問題。

我現在嚴重懷疑蘋果的稽核人員是剛教育訓練的,哎~

聊聊與蘋果稽核員的愛恨情仇(上)

想法