App Store上架審核過程中常見問題整理,無法連接itunes store是怎么回事App Store上架審核過程中常見問題整理一、iOS APP上架流程簡(jiǎn)介1.申請(qǐng)開發(fā)者賬號(hào)蘋果的開發(fā)者賬號(hào)主要分為個(gè)人(Individual)、公司(Company)、企業(yè)(Enterprise)、高校(University)四種......
一、iOS APP上架流程簡(jiǎn)介
1.申請(qǐng)開發(fā)者賬號(hào)
蘋果的開發(fā)者賬號(hào)主要分為個(gè)人(Individual)、公司(Company)、企業(yè)(Enterprise)、高校(University)四種類型,每年資費(fèi)分別為$99、$99、$299、免費(fèi))。一般開發(fā)者申請(qǐng)的都是個(gè)人或者公司的,企業(yè)的開發(fā)者賬號(hào)開發(fā)應(yīng)用不能發(fā)布到App Store,只能企業(yè)內(nèi)部使用。這個(gè)申請(qǐng)過程一般可能需要一個(gè)星期左右。公司和企業(yè)的需要鄧白氏碼,如果鄧白氏碼未申請(qǐng),請(qǐng)先申請(qǐng)鄧白氏碼,這個(gè)過程需要一到兩個(gè)星期。
2.創(chuàng)建證書、AppID、生成描述文件
通過Mac的鑰匙串工具,生成證書請(qǐng)求文件,下載證書,這里需要注意的是下載下來的證書只能在請(qǐng)求該證書的電腦上使用,如果想給其他開發(fā)者使用需要將已經(jīng)導(dǎo)入的證書導(dǎo)出為個(gè)人信息交換(.p12)格式供他人使用。AppID的創(chuàng)建需要用到項(xiàng)目的Bundle ID,之后便可以創(chuàng)建描述文件了。
3.在開發(fā)者中心的iTunes Connect中配置App相關(guān)信息
在開發(fā)者中心里的iTunes Connect里的APP選項(xiàng)中新建APP項(xiàng)目并配置相應(yīng)的信息(需要各個(gè)版本的屏幕截圖,運(yùn)行模擬器,調(diào)到最大(command+1),用command+s截圖,還有就是一個(gè)1024*1024的圖標(biāo),不能有圓角)
4.使用Xcode打包上傳App
將2步驟中申請(qǐng)好的證書和描述文件正確配置到Xcode中,設(shè)置好Xcode的一些屬性:
1.在Xcode中選擇iOS Device(這里不能選擇模擬器);
2.如果應(yīng)用不支持橫屏,請(qǐng)?jiān)贕eneral選項(xiàng)中將Landscape Left和
Landscape Right兩項(xiàng)的勾選去掉;
3.查看版本號(hào)和構(gòu)建版本號(hào);
4.將斷點(diǎn)、全局?jǐn)帱c(diǎn)、僵尸模式等都去掉;
5.設(shè)置為Release模式。
之后便可選擇Xcodegt;Productgt;Archive打包項(xiàng)目,打包完成后選擇Upload to App Store上傳。如果不想使用Xcode上傳的話,也可以選擇Export導(dǎo)出ipa文件,需要注意的是在導(dǎo)出時(shí),必須選擇Save for iOS App Store Deployment。然后通過Application Loader工具上傳ipa文件。
5.提交審核
以上步驟完成后,返回iTunes Connect上查看自己的App信息,在構(gòu)建版本中選擇剛剛上傳的App版本,此時(shí)有可能顯示正在處理,這時(shí)可能需要等幾分鐘再回來查看。選擇好版本后點(diǎn)擊提交以供審核,這時(shí)App會(huì)變成等待審核狀態(tài)。
6.后續(xù)
后續(xù)就是等待蘋果的審核人員審核應(yīng)用了,如果一切順利的話,這個(gè)過程需要一到兩個(gè)工作日便可完成審核,當(dāng)然前提是你的應(yīng)用符合蘋果的審核條款。如果審核不通過,請(qǐng)及時(shí)根據(jù)反饋信息修改應(yīng)用,再次提交直到符合要求。審核通過后,如果之前選擇已經(jīng)選擇好自動(dòng)發(fā)布,便可在AppStore上查看和下載應(yīng)用了。
二、iOS上架審核過程常見的坑與解決方法
1.問題:用戶生成內(nèi)容(UGC)缺少必要的審核
為了防止非法濫用用戶生成的內(nèi)容,從而給用戶提供虛假信息、盜取用戶的知識(shí)產(chǎn)權(quán),社交應(yīng)用以及應(yīng)用當(dāng)中包含用戶生成的信息的應(yīng)用必須包括下述功能:
1.過濾不良內(nèi)容
2.提供舉報(bào)機(jī)制
3.后臺(tái)服務(wù)可以提供阻止騷擾用戶的行為
4.提供官方聯(lián)系方式,讓用戶可以快速聯(lián)系到開發(fā)商
解決方案:
維秀直播App提供了用戶實(shí)時(shí)彈幕功能,所以涉及到了UGC,他們的處理方法是增加關(guān)鍵詞過濾,還有通過房管的方式人工審核,處理違規(guī)用戶。
2.問題:應(yīng)用中使用了IDFA被拒絕
IDFA主要被用于廣告中區(qū)分設(shè)備的作用。AppStore禁止沒有使用廣告而采集IDFA的App上架,所以如果App本身沒有廣告的話,使用第三方SDK要注意檢查是否含有IDFA廣告模塊。
解決方案:
如果應(yīng)用本身有集成廣告的話,只需要在提交審核的時(shí)候勾選正確的廣告標(biāo)識(shí)符選項(xiàng)即可。
如果應(yīng)用本身未集成廣告,卻包含IDFA的話。這種情況一般都是集成的第三方SDK中包含IDFA導(dǎo)致的。首先尋找是否有不包含IDFA的SDK版本,如果沒有的話可以參考ShareSDK的解決方法,通過后臺(tái)配置在審核期間為應(yīng)用添加廣告,審核完成過后將廣告展示去掉。
3.問題:應(yīng)用不支持IPv6網(wǎng)絡(luò)下使用
2016年6月1號(hào)起,蘋果的審核人員會(huì)在IPv6網(wǎng)絡(luò)上審核你的應(yīng)用,所以如果你的應(yīng)用程序無法使用IPv6協(xié)議,可能會(huì)被拒絕。
解決方案:
卓易奪寶和樂動(dòng)聽App上架過程中就因?yàn)镮Pv6的支持原因被拒。他們的解決方案是:
協(xié)調(diào)后端人員添加對(duì)IPv6網(wǎng)絡(luò)的支持。
App端更新相關(guān)的第三方SDK,比如使用ASI或者AFN的版本太低,使用最新的AFN即可解決問題。當(dāng)然這些做完之后最好在Mac上面搭建IPv6網(wǎng)絡(luò)供測(cè)試人員進(jìn)行完測(cè)試再重新發(fā)布。
4.問題:第三方登錄、支付、分享未安裝應(yīng)用,提示下載被拒
這個(gè)問題其實(shí)被拒的原因有兩種,第一種是未安裝應(yīng)用沒有任何提示,這種情況下相當(dāng)于應(yīng)用有無效的按鈕所以會(huì)被拒;第二種是提示下載對(duì)應(yīng)的第三方App,這也是蘋果所不允許的。
解決方案:
最新的第三方登錄等相關(guān)的SDK目前已知的(微信,QQ,微博)都已經(jīng)對(duì)這種情況做了處理,在未安裝的情況下會(huì)調(diào)用web進(jìn)行登錄,所以如果測(cè)試過程中發(fā)現(xiàn)可以成功在web上登錄的話可以不做處理。以前在沒有這種處理機(jī)制的情況下需要開發(fā)者調(diào)用對(duì)應(yīng)接口,先判斷是否安裝了相應(yīng)的第三方APP,如果未安裝,需要隱藏按鈕,這樣便可輕松過審。
5.問題:虛擬產(chǎn)品未使用應(yīng)用內(nèi)支付(IAP)被拒
根據(jù)蘋果官方最新的審核條款:如果你希望通過付費(fèi)才可以解鎖你的應(yīng)用當(dāng)中的一些功能(例如,訂閱內(nèi)容,游戲貨幣,游戲關(guān)卡,獲取優(yōu)質(zhì)內(nèi)容,解鎖完整版本),你必須使用應(yīng)用內(nèi)付費(fèi)(IAP)。如果這種情況下,應(yīng)用使用了其他的第三方支付,應(yīng)用將被拒絕上架。
解決方案:
審核的時(shí)候,把相應(yīng)的虛擬產(chǎn)品隱藏起來,通過后再放出來,此招有風(fēng)險(xiǎn),可能會(huì)受到警告信,甚至被封號(hào),如果用戶量小就無所謂了,先把App搞上架!
審核的時(shí)候,走IAP的支付方式,審核完成后再通過服務(wù)器配置動(dòng)態(tài)切換到支付寶、微信等第三方支付。該法類似于方案1,也存在風(fēng)險(xiǎn)。
學(xué)習(xí)58同城,讓用戶去網(wǎng)站購(gòu)買產(chǎn)品,買了產(chǎn)品的賬號(hào)到移動(dòng)端使用功能。
老老實(shí)實(shí)的使用IAP吧。
6.問題:使用后臺(tái)定位被拒
關(guān)于位置服務(wù)蘋果的審核條款原文如下:
使用位置服務(wù)的應(yīng)用程序必須提供和位置服務(wù)直接相關(guān)的功能。使用基于位置的API不允許用于提供緊急服務(wù),或者實(shí)現(xiàn)自動(dòng)控制車輛、飛行器以及其他設(shè)備(小型的設(shè)備例如小型無人機(jī)和玩具例外),遠(yuǎn)程控制汽車警報(bào)系統(tǒng)等。在收集、傳輸和使用用戶的位置數(shù)據(jù)之前,請(qǐng)確保你已經(jīng)取得了用戶的同意。如果應(yīng)用程序使用了后臺(tái)定位服務(wù),務(wù)必在應(yīng)用當(dāng)中闡明其目的。并且使用后臺(tái)定位的話需要提供一個(gè)明確的提醒告訴用戶這么做會(huì)加快電量消耗。
一般應(yīng)用在這一塊被拒的原因有以下幾種:
1.應(yīng)用根本不需要定位功能。
2.應(yīng)用需要定位功能,但是只需要短暫的獲取少數(shù)的用戶的位置,比如美團(tuán),新聞?lì)惖膽?yīng)用需要獲得當(dāng)前用戶的所在城市,卻使用了后臺(tái)定位模式。
3.應(yīng)用確實(shí)需要使用后臺(tái)定位,比如打車類軟件,但是應(yīng)用中卻沒有任何界面展示這些定位數(shù)據(jù)。
解決方案:
4.如果你的應(yīng)用根本不需要定位功能,但是還是在info.plist里面添加了location in theUIBackgroundModes key,那么在plist文件里面移除UIBackgroundModes key就可以,這中情況較少,新手小白會(huì)犯這種錯(cuò)誤。
5.如果只是簡(jiǎn)單獲取位置不需要使用后臺(tái)定位,只需要去掉info.plist的文件中的UIBackgroundModes即可。
6.這種情況比較復(fù)雜,推薦的做法是通過表格或者軌跡展示出后臺(tái)定位的數(shù)據(jù),再提交審核的時(shí)候告訴蘋果那個(gè)功能需要后臺(tái)定位,具體展示后臺(tái)定位的數(shù)據(jù)在那個(gè)界面,最后需要Continued use of GPS running in the background can dramatically decrease battery life加到App描述里面,可以參考滴滴出行的描述,否則也會(huì)被拒絕。
7.問題:info.plist權(quán)限配置被拒
iOS 10之后如果需要調(diào)用相機(jī),藍(lán)牙等設(shè)備時(shí),需要在info.plist文件中進(jìn)行相應(yīng)的配置,否則應(yīng)用會(huì)直接崩潰,在iOS 10之前則是無法訪問。另外,如果在info.plist中調(diào)用了配置了權(quán)限在應(yīng)用中卻沒有使用到也是會(huì)被拒的。
解決方案:
一定要注意自己的App在使用中用到了哪些權(quán)限,不要添加無用的權(quán)限,也不要缺少必要的權(quán)限。
8.問題:應(yīng)用提示更新被拒
應(yīng)用內(nèi)不能有任何提示更新應(yīng)用的字樣,且應(yīng)用的更新只能通過AppStore。因?yàn)樘O果對(duì)于應(yīng)用的更新有自己的一套策略,所以禁止應(yīng)用本身提供更新方式,只要應(yīng)用內(nèi)出現(xiàn)。
解決方案:
如果不是很必要的話,盡量將應(yīng)用內(nèi)涉及到應(yīng)用更新的部分去掉。如果真的需要使用應(yīng)用更新,推薦的方法是應(yīng)用啟動(dòng)的時(shí)候獲取下應(yīng)用在AppStore上面的版本號(hào),與自己的版本號(hào)進(jìn)行比較,當(dāng)自己的版本號(hào)小于AppStore上面的版本號(hào)時(shí),提示更新,否則的話不顯示更新相關(guān)的內(nèi)容。
9.問題:奪寶(抽獎(jiǎng))類應(yīng)用被拒
根據(jù)AppStore審核準(zhǔn)則20.4的規(guī)定,抽獎(jiǎng)卷或抽獎(jiǎng)參與權(quán)的購(gòu)買,不論是透過第三方支付渠道或者余額扣款實(shí)現(xiàn),都不能夠在app內(nèi)執(zhí)行。
解決方案:
卓易奪寶App上架過程中遇到的問題,最后的解決方法是在審核過程中,所有的支付行為都跳轉(zhuǎn)到Safari瀏覽器上面進(jìn)行,審核完成后再使用支付寶等app平臺(tái)支付。
10.問題:隱私條款問題被拒
在未獲得用戶事先允許,或未告知用戶信息將被如何,在哪里使用的情況下,應(yīng)用不可以傳輸用戶數(shù)據(jù)。
解決方案:
《網(wǎng)站服務(wù)協(xié)議》《隱私條款》這些都不要少,注冊(cè)時(shí)候讓用戶可勾選。另外注明需要的用戶信息用來做什么。
11.問題:未提供測(cè)試賬號(hào)被拒
如果應(yīng)用中有需要用到賬號(hào)或者其他資源的(例如:一個(gè)二維碼)才能使用的一些功能,但未提供給蘋果,可能會(huì)被拒絕上架。原因是蘋果審核人員無法測(cè)試這些功能。
解決方案:
提供一個(gè)有效的測(cè)試帳號(hào)以及登錄信息,并提供測(cè)試功能必要的的硬件和資源(例如,一個(gè)測(cè)試用的二維碼)
12.問題:未通過HTTPS訪問被拒
App Transport Security(ATS)是Apple為增強(qiáng)iOS App網(wǎng)絡(luò)通信安全提出的安全功能,適用于iOS App和App Extension;在啟用ATS之后,它會(huì)強(qiáng)制應(yīng)用通過HTTPS(而不是HTTP)連接網(wǎng)絡(luò)服務(wù)。WWDC 2016上提出,2016年底或2017年初,具體時(shí)間未定。App Store上架審核加強(qiáng)對(duì)ATS配置的review,即強(qiáng)制應(yīng)用必須通過HTTPS連接網(wǎng)絡(luò)服務(wù),而不是隨手將NSAllowsArbitraryLoads置為YES,否則審核不予通過。
解決方案:
ATS的提出,是為了在系統(tǒng)層面保障iOS APP網(wǎng)絡(luò)通信的安全;Apple只所以加強(qiáng)對(duì)ATS配置的審核,是為了防止開發(fā)者們遇到ATS相關(guān)的場(chǎng)景時(shí),只是簡(jiǎn)單地將ATS完全關(guān)閉(只要沒有強(qiáng)制性措施,開發(fā)者會(huì)這么做);在此基礎(chǔ)上,App審核同樣會(huì)遵循原則:App Review will requirereasonable justificationfor most ATS exceptions。
Apple官方給出的可以通過審核的聲明demo如下:
1.必須使用第三方提供的服務(wù),但是其沒有支持HTTPS;
2.必須通過域名連接到設(shè)備,但該設(shè)備不能支持安全連接;
3.必須展示不同來源的網(wǎng)頁內(nèi)容,但是不能基于NSAllowsArbitraryLoadsInWebContent支持的類(UIWebView/WKWebView)實(shí)現(xiàn);
4.載入加密的媒體資源并且其中不涉及個(gè)人信息。
由于Apple官方并沒有給出ATS審核的完整說明,ATS審核時(shí)什么才是合適合理的聲明也沒有明確的客觀定義,以上demo描述僅能作為參照。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部