iOS應(yīng)用安裝失敗原因排查

本文結(jié)合蒲公英以及FIR兩家應(yīng)用托管平臺(tái)的博文進(jìn)行整理

前言

iOS 的內(nèi)測應(yīng)用在安裝時(shí),很多人都遇到過安裝失敗的情況荆虱,安裝失敗的原因比較多,下面將一些常見原因總結(jié)如下,方便開發(fā)者進(jìn)行排查。

在 iOS 9 中啟動(dòng)應(yīng)用時(shí),出現(xiàn)提示“未受信任的企業(yè)級(jí)開發(fā)者”

這樣問題是因?yàn)樵?iOS 9 以后的版本中,蘋果對(duì)企業(yè)簽名的應(yīng)用做了更嚴(yán)格了限制。具體解決辦法請(qǐng)見: 企業(yè)級(jí)證書打包下載安裝之后無法使用問題

在 iOS 9 中點(diǎn)擊“安裝”按鈕后妙蔗,沒有彈出“是否安裝”的提示

這個(gè)問題是因?yàn)?iOS 9 的一個(gè) Bug 導(dǎo)致的。出現(xiàn)這個(gè)問題的前提疆瑰,一般是由于用戶已經(jīng)從蘋果官方 App Store 上安裝了相同的應(yīng)用眉反。

【解決辦法】

先在設(shè)備中刪除之前已經(jīng)安裝的應(yīng)用,然后再從托管平臺(tái)安裝即可穆役。

為什么在 iOS 9 中寸五,點(diǎn)擊“安裝”按鈕后,沒有任何反應(yīng)耿币,桌面也沒有出現(xiàn)應(yīng)用圖標(biāo)播歼,但是狀態(tài)欄上的網(wǎng)絡(luò)圖標(biāo)在轉(zhuǎn)

這是由于 iOS 9 中的一個(gè) Bug 造成的。雖然看上去沒有反應(yīng)掰读,其實(shí)應(yīng)用已經(jīng)在后臺(tái)開始下載并安裝了秘狞,狀態(tài)欄上的網(wǎng)絡(luò)圖標(biāo)在轉(zhuǎn)就是一個(gè)證明。這個(gè)時(shí)候蹈集,只要多等待一會(huì)兒就好了烁试,應(yīng)用安裝完成之后會(huì)在桌面上顯示出來的。

應(yīng)用安裝過程中提示"無法下載應(yīng)用程序"

原因一:在導(dǎo)出 iOS App 的安裝包文件( .ipa 文件)時(shí)拢肆,選擇了 App-Store 方式减响。

在導(dǎo)出 iOS 的.ipa文件時(shí),有些開發(fā)者選擇了App-Store方式郭怪,這種方式導(dǎo)出的.ipa文件支示,只適合于上傳到蘋果App Store,并不能通過托管平臺(tái)來安裝鄙才。如果是這種方式導(dǎo)出的 .ipa文件颂鸿,傳到托管平臺(tái)上是不能通過安裝的。

原因二:在導(dǎo)出 iOS App 的安裝包文件( .ipa 文件)時(shí)攒庵,選擇了 Ad-hoc 方式嘴纺,但是沒有添加設(shè)備 UDID 。

在導(dǎo)出 iOS 的安裝包文件時(shí)浓冒,如果選擇了Ad-hoc方式(一般用于蘋果個(gè)人開發(fā)者賬戶)栽渴,那么,如果要某臺(tái)設(shè)備可以安裝稳懒,則必須要將這臺(tái)設(shè)備的 UDID 添加到導(dǎo)出安裝包時(shí)所用的證書文件中(.mobileprovision文件)闲擦,才可以在這臺(tái)設(shè)備上安裝。

使用 Ad-hoc 方式導(dǎo)出的安裝包文件上傳到托管平臺(tái)后,托管平臺(tái)會(huì)顯示為內(nèi)測版墅冷,同時(shí)會(huì)在應(yīng)用管理中贮缕,顯示出該安裝包的證書中包含的 UDID 列表。開發(fā)者可以根據(jù)顯示出的UDID列表俺榆,來排查某臺(tái)設(shè)備的 UDID 有沒有被添加到安裝包的證書中。

原因三:在導(dǎo)出 iOS App 的安裝包文件( .ipa 文件)時(shí)装哆,選擇了 In-house 方式罐脊,但是證書已過期或被撤銷。

在導(dǎo)出 iOS 的安裝包文件時(shí)蜕琴,如果選擇了In-house方式(一般用于蘋果企業(yè)開發(fā)者賬戶)萍桌,此時(shí),如果出現(xiàn)無法安裝的情況凌简,開發(fā)者可以檢查一下自己的企業(yè)開發(fā)者證書是否已過期或被撤銷上炎。因?yàn)樘O果對(duì)于企業(yè)開發(fā)者證書管理較為嚴(yán)格,所以開發(fā)者如果使用不當(dāng)雏搂,可能會(huì)導(dǎo)致企業(yè)證書被封藕施,被封后的企業(yè)證書導(dǎo)出的安裝包,也是無法正確安裝的凸郑。

原因四:開發(fā)者在生成App安裝包時(shí)裳食,沒有在 Xcode 中設(shè)置正確的 Architecture 。

iOS 應(yīng)用的 Architecture(架構(gòu))芙沥,決定了這款 iOS 應(yīng)用可以在哪些設(shè)備機(jī)型上安裝诲祸。例如,如果某個(gè)應(yīng)用在 Xcode 中只添加了 arm64 這一種 Architecture而昨,那么最終打包后的安裝包文件上傳到托管平臺(tái)后救氯,對(duì)于 iPad mini、iPhone5 等以下設(shè)備歌憨,都是無法安裝的(因?yàn)檫@些設(shè)備都不是 arm64 架構(gòu))着憨。換句話說,如果需要在某個(gè)設(shè)備上可以安裝务嫡,App 就必須支持那個(gè)設(shè)備的 Architecture享扔。

所以,正確的解決方法是植袍,在生成 App 安裝包時(shí)惧眠,盡可能讓 App 支持更多的 Architecture

具體操作方法是:在 Xcode - Build Settings - Architecture 中于个,增加 armv7氛魁、armv7s、arm64,以便所有設(shè)備都可以安裝秀存。然后捶码,將 "Build active architecture only" 設(shè)置為NO。對(duì)于各個(gè) iOS 設(shè)備支持的 Architecture 類型或链。請(qǐng)點(diǎn)擊這里查看惫恼。

原因五:App 支持的 iOS 系統(tǒng)版本,和當(dāng)前設(shè)備系統(tǒng)版本不符澳盐。

打包時(shí) App 選擇支持的 iOS 系統(tǒng)版本過低或者過高祈纯,都可能導(dǎo)致 App 無法安裝成功。例如叼耙,如果某個(gè) App 設(shè)置了只支持 iOS 7.0 以上的系統(tǒng)時(shí)腕窥,那么,如果在 iOS 6.1 系統(tǒng)上安裝時(shí)筛婉,肯定是無法安裝成功簇爆。

因此,我們應(yīng)該盡量讓 App 盡可能支持更寬泛的系統(tǒng)版本爽撒。

具體操作方式是:在Xcode - General - Deployment Info - Deployment Target中入蛆,給 App 設(shè)置一個(gè)盡量低的版本,例如 iOS 5.0硕勿。

原因六:開發(fā)者上傳的是一個(gè)破解的 ipa 安裝包安寺,或者是一個(gè)使用破解 Xcode 方式打包生成的 ipa 安裝包,或者是通過 iTunes 生成的 ipa 安裝包首尼。

通過任何非 Xcode(或 Xcode 的命令行工具)生成的安裝包挑庶,都是沒有辦法正確在設(shè)備上安裝的(越獄設(shè)備除外)。

常見的不正確的打包 ipa 的方式有:
通過 iTunes 導(dǎo)出安裝包文件软能、通過 iTools 導(dǎo)出安裝包文件等等迎捺。這種類型的 App 上傳到托管平臺(tái)后,會(huì)顯示未簽名的標(biāo)簽提示查排。

【正確的方法】

使用一個(gè)正常的蘋果開發(fā)者證書凳枝,通過未破解的 Xcode 打包生成 ipa 安裝包。

原因七:設(shè)備上已經(jīng)安裝了這個(gè)App跋核,且已經(jīng)安裝的 App 和要安裝的 App 是用不同證書打包的岖瑰。

這種情況下,也會(huì)造成 App 安裝失敗砂代。解決的方式很簡單蹋订,開發(fā)者只需將設(shè)備上原來已經(jīng)安裝的 App 刪除,再重新安裝新的 App 即可刻伊。

原因八:Info.plist 文件中的LSRequiresIPhoneOS 沒有設(shè)置露戒,或者設(shè)置了 NO椒功。

對(duì)于 iOS 的 App 來說,如果Info.plist文件中的LSRequiresIPhoneOS沒有設(shè)置智什,或者設(shè)置了NO动漾,那么由 Xcode 導(dǎo)出的安裝包(.ipa包),就不會(huì)包含Payload文件夾荠锭,而是被一個(gè)叫做Applications的文件夾代替旱眯。這樣的安裝包在安裝時(shí),會(huì)被 iOS 判定為無效的安裝包证九,所以無法被正確安裝删豺。

【解決方式】

只需要將Info.plist文件中的LSRequiresIPhoneOS設(shè)置為YES,然后重新打包即可甫贯。具體操作為:在 Xcode 中打開Info.plist文件,然后檢查 LSRequiresIPhoneOS是否已設(shè)置看蚜,如果沒有設(shè)置叫搁,就添加一個(gè),然后將LSRequiresIPhoneOS的類型設(shè)置為Boolean供炎,值設(shè)置為 YES渴逻。

設(shè)置好以后,可以看到Info.plist文件中顯示Application requires iPhone environment的值為YES音诫。

原因九:網(wǎng)絡(luò)出現(xiàn)中斷或異常惨奕。

遇到這種情況,用戶可檢查自己手機(jī)的所連接的網(wǎng)絡(luò)是否穩(wěn)定竭钝、速度是否正常等梨撞。可以嘗試一下其他網(wǎng)站香罐,或者更換一個(gè) Wi-Fi卧波,或者由 Wi-Fi 換成 3G/4G 等,然后重新安裝庇茫。


【托管平臺(tái)】: 托管平臺(tái)是指將APP發(fā)布于第三方平臺(tái)上面港粱,供用戶安裝測試。常見的托管平臺(tái)有蒲公英以及FIR

【App-Store】: App-Store版旦签,用于發(fā)布到蘋果商店

【Ad-hoc】: 內(nèi)測版查坪,用于內(nèi)部指定設(shè)備使用

【In-house】: 企業(yè)版,可在任何設(shè)備上安裝宁炫,但不能濫用


再一次感謝您花費(fèi)時(shí)間閱讀這篇文章偿曙!

微博: @Danny_呂昌輝
博客: SuperDanny

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市羔巢,隨后出現(xiàn)的幾起案子遥昧,更是在濱河造成了極大的恐慌覆醇,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炭臭,死亡現(xiàn)場離奇詭異永脓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鞋仍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門常摧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人威创,你說我怎么就攤上這事落午。” “怎么了肚豺?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵溃斋,是天一觀的道長。 經(jīng)常有香客問我吸申,道長梗劫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任截碴,我火速辦了婚禮梳侨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘日丹。我一直安慰自己走哺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布哲虾。 她就那樣靜靜地躺著丙躏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪束凑。 梳的紋絲不亂的頭發(fā)上彼哼,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音湘今,去河邊找鬼敢朱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛摩瞎,可吹牛的內(nèi)容都是我干的拴签。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼旗们,長吁一口氣:“原來是場噩夢啊……” “哼蚓哩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起上渴,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤岸梨,失蹤者是張志新(化名)和其女友劉穎喜颁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體曹阔,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡半开,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赃份。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寂拆。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖抓韩,靈堂內(nèi)的尸體忽然破棺而出纠永,到底是詐尸還是另有隱情,我是刑警寧澤谒拴,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布尝江,位于F島的核電站,受9級(jí)特大地震影響英上,放射性物質(zhì)發(fā)生泄漏炭序。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一善延、第九天 我趴在偏房一處隱蔽的房頂上張望少态。 院中可真熱鬧城侧,春花似錦易遣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屋摇,卻和暖如春揩魂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背炮温。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工火脉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人柒啤。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓倦挂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親担巩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子方援,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容