ipa 下載失敗原因

在 iOS 9 中點擊“安裝”按鈕后,沒有彈出“是否安裝”的提示

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

【解決辦法】

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

為什么在 iOS 9 中,點擊“安裝”按鈕后,沒有任何反應,桌面也沒有出現(xiàn)應用圖標,但是狀態(tài)欄上的網(wǎng)絡圖標在轉(zhuǎn)

這是由于 iOS 9 中的一個 Bug 造成的。雖然看上去沒有反應,其實應用已經(jīng)在后臺開始下載并安裝了,狀態(tài)欄上的網(wǎng)絡圖標在轉(zhuǎn)就是一個證明。這個時候,只要多等待一會兒就好了,應用安裝完成之后會在桌面上顯示出來的。

應用安裝過程中提示"無法下載應用程序"

原因一:在導出 iOS App 的安裝包文件( .ipa 文件)時,選擇了 App-Store 方式。

在導出 iOS 的.ipa文件時,有些開發(fā)者選擇了App-Store方式,這種方式導出的.ipa文件,只適合于上傳到蘋果App Store,并不能通過托管平臺來安裝。如果是這種方式導出的 .ipa文件,傳到托管平臺上是不能通過安裝的。

原因二:在導出 iOS App 的安裝包文件( .ipa 文件)時,選擇了 Ad-hoc 方式,但是沒有添加設備 UDID 。

在導出 iOS 的安裝包文件時,如果選擇了Ad-hoc方式(一般用于蘋果個人開發(fā)者賬戶),那么,如果要某臺設備可以安裝,則必須要將這臺設備的 UDID 添加到導出安裝包時所用的證書文件中(.mobileprovision文件),才可以在這臺設備上安裝。

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

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

在導出 iOS 的安裝包文件時,如果選擇了In-house方式(一般用于蘋果企業(yè)開發(fā)者賬戶),此時,如果出現(xiàn)無法安裝的情況,開發(fā)者可以檢查一下自己的企業(yè)開發(fā)者證書是否已過期或被撤銷。因為蘋果對于企業(yè)開發(fā)者證書管理較為嚴格,所以開發(fā)者如果使用不當,可能會導致企業(yè)證書被封,被封后的企業(yè)證書導出的安裝包,也是無法正確安裝的。

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

iOS 應用的 Architecture(架構(gòu)),決定了這款 iOS 應用可以在哪些設備機型上安裝。例如,如果某個應用在 Xcode 中只添加了 arm64 這一種 Architecture,那么最終打包后的安裝包文件上傳到托管平臺后,對于 iPad mini、iPhone5 等以下設備,都是無法安裝的(因為這些設備都不是 arm64 架構(gòu))。換句話說,如果需要在某個設備上可以安裝,App 就必須支持那個設備的 Architecture。

所以,正確的解決方法是,在生成 App 安裝包時,盡可能讓 App 支持更多的 Architecture

具體操作方法是:在 Xcode - Build Settings - Architecture 中,增加 armv7、armv7s、arm64,以便所有設備都可以安裝。然后,將 "Build active architecture only" 設置為NO。對于各個 iOS 設備支持的 Architecture 類型。請點擊這里查看

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

打包時 App 選擇支持的 iOS 系統(tǒng)版本過低或者過高,都可能導致 App 無法安裝成功。例如,如果某個 App 設置了只支持 iOS 7.0 以上的系統(tǒng)時,那么,如果在 iOS 6.1 系統(tǒng)上安裝時,肯定是無法安裝成功。

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

具體操作方式是:在Xcode - General - Deployment Info - Deployment Target中,給 App 設置一個盡量低的版本,例如 iOS 5.0。

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

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

常見的不正確的打包 ipa 的方式有:
通過 iTunes 導出安裝包文件、通過 iTools 導出安裝包文件等等。這種類型的 App 上傳到托管平臺后,會顯示未簽名的標簽提示。

【正確的方法】

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

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

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

原因八:Info.plist 文件中的LSRequiresIPhoneOS 沒有設置,或者設置了 NO。

對于 iOS 的 App 來說,如果Info.plist文件中的LSRequiresIPhoneOS沒有設置,或者設置了NO,那么由 Xcode 導出的安裝包(.ipa包),就不會包含Payload文件夾,而是被一個叫做Applications的文件夾代替。這樣的安裝包在安裝時,會被 iOS 判定為無效的安裝包,所以無法被正確安裝。

【解決方式】

只需要將Info.plist文件中的LSRequiresIPhoneOS設置為YES,然后重新打包即可。具體操作為:在 Xcode 中打開Info.plist文件,然后檢查 LSRequiresIPhoneOS是否已設置,如果沒有設置,就添加一個,然后將LSRequiresIPhoneOS的類型設置為Boolean,值設置為 YES。

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

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

遇到這種情況,用戶可檢查自己手機的所連接的網(wǎng)絡是否穩(wěn)定、速度是否正常等??梢試L試一下其他網(wǎng)站,或者更換一個 Wi-Fi,或者由 Wi-Fi 換成 3G/4G 等,然后重新安裝。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,184評論 4 61
  • 與其改變自己補齊短板,不如最大程度發(fā)揮優(yōu)勢,樂在其中!
    石板頭閱讀 163評論 0 0
  • 職業(yè)觀察科2017/10/24作者:小紅拖拉機 為什么你面試總失敗?原來問題出在這里... ▍本文作者,小紅拖拉機...
    nooooogod閱讀 529評論 0 0
  • 趙有貞一早就把岳少群和林源宗請進了會議室,岳少群心中清楚,他還是為了顏顏的事情來的,為了一個和自己沒有利益糾葛的人...
    貓的報恩閱讀 228評論 0 1
  • 一 近日,前上司搬家了。 從120平的江景豪宅搬到了400平的花園疊墅。別墅依湖而建,風景優(yōu)美到令人嘆為觀止。 總...
    遇見禾禾閱讀 329評論 0 1

友情鏈接更多精彩內(nèi)容