您好,登錄后才能下訂單哦!
在做ios簽名的時候,通常都會根據簽名的類型去選擇不同的打包方式。但是,錯誤的打包方式會直接導致簽名失敗,應用在安裝的時候出錯。其實,很大程度上是因為你在打包的時候選擇了錯誤的打包方式才會出現如此尷尬的局面。下面為大家整理一下大致原因,希望大家在做ios簽名的時候盡量避免出錯。
通常這個問題出在導出蘋果iOS的ipa文件時,有些開發者錯誤的選擇了App-Store方式,此方式導出的ipa文件,僅適合于上傳到蘋果 App Store,并不能通過做企業簽名后進行安裝。假如是如此方式導出的ipa文件,當傳到分發平臺上后,會顯示“App-Store版”,此類版本是不能安裝的。
當在導出蘋果iOS的安裝包文件時,如果選擇了Ad-hoc方式(一般適用于蘋果的個人開發者賬戶),那么,如果某臺設備需要安裝,則必須要將這臺設備的UDID添加到導出安裝包時所用的證書文件中(. mobileprovision文件),然后才可以在這臺設備上進行安裝。
在導出蘋果iOS的安裝包文件時,假如選擇了In-house方式(一般適用于蘋果的企業開發者賬戶),此時,如果出現無法安裝的情況,開發者可以排查一下自己的企業開發者證書是否已過期或是否被撤銷。因為蘋果對于企業開發者證書監測比較嚴格,一旦開發者使用不當,可能會導致企業證書被蘋果官方封掉撤銷,被撤銷后的企業證書導出的安裝包,也是無法正確安裝的。
在蘋果iOS應用的 Architecture(架構),決定了這款iOS應用可以在哪些設備機型上安裝。例如,如果某個應用在Xcode中只添加arm64這一種Architecture,那么最終打包后的安裝包文件上傳后,對于iPad mini、iPhone5等以下設備,基本上是無法安裝的(因為這些設備都不是arm64架構)。換言之,計入需要在某個設備上可以安裝,App就必須支持那個設備的Architecture。
所以,正確的解決方法是在生成App安裝包時,盡量讓App支持更多的Architecture。具體操作方法是:在Xcode - Build Settings - Architecture中,增加armv7、armv7s、arm64,以便所有設備都可以安裝。然后,將 "Build active architecture only" 設置為NO。對于各個iOS設備支持的Architecture類型。
App支持的iOS系統版本過低或者過高,都有可能導致App無法安裝成功。例如,假如某個 App設置了只支持iOS 11.0以上的系統時,那么,如果在低于這個版本的系統上安裝時,那么是無法安裝成功的。
因此,解決的方法也很簡單,我們應該讓App盡可能支持更寬泛的系統版本。具體操作方式是:在Xcode - General - Deployment Info - Deployment Target 中,給App設置一個盡量低的版本,例如 iOS 6.0。
這樣的情況下,也會造成App安裝失敗。解決的方式很簡單,用戶只需將設備上原來已經安裝的App刪除,然后再重新安裝新的App即可。
對于蘋果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。
當遇到這種情況,用戶可檢查自己手機的所連接的網絡是否穩定、速度是否正常等。可以嘗試切換一下其他網站,或者更換一個Wi-Fi,或者由Wi-Fi換成3G/4G等,然后再試試重新安裝。用這樣的方式嘗試后,一般都可以解決問題。
以上。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。