您好,登錄后才能下訂單哦!
在做ios簽名的時(shí)候,通常都會(huì)根據(jù)簽名的類型去選擇不同的打包方式。但是,錯(cuò)誤的打包方式會(huì)直接導(dǎo)致簽名失敗,應(yīng)用在安裝的時(shí)候出錯(cuò)。其實(shí),很大程度上是因?yàn)槟阍诖虬臅r(shí)候選擇了錯(cuò)誤的打包方式才會(huì)出現(xiàn)如此尷尬的局面。下面為大家整理一下大致原因,希望大家在做ios簽名的時(shí)候盡量避免出錯(cuò)。
通常這個(gè)問(wèn)題出在導(dǎo)出蘋果iOS的ipa文件時(shí),有些開發(fā)者錯(cuò)誤的選擇了App-Store方式,此方式導(dǎo)出的ipa文件,僅適合于上傳到蘋果 App Store,并不能通過(guò)做企業(yè)簽名后進(jìn)行安裝。假如是如此方式導(dǎo)出的ipa文件,當(dāng)傳到分發(fā)平臺(tái)上后,會(huì)顯示“App-Store版”,此類版本是不能安裝的。
當(dāng)在導(dǎo)出蘋果iOS的安裝包文件時(shí),如果選擇了Ad-hoc方式(一般適用于蘋果的個(gè)人開發(fā)者賬戶),那么,如果某臺(tái)設(shè)備需要安裝,則必須要將這臺(tái)設(shè)備的UDID添加到導(dǎo)出安裝包時(shí)所用的證書文件中(. mobileprovision文件),然后才可以在這臺(tái)設(shè)備上進(jìn)行安裝。
在導(dǎo)出蘋果iOS的安裝包文件時(shí),假如選擇了In-house方式(一般適用于蘋果的企業(yè)開發(fā)者賬戶),此時(shí),如果出現(xiàn)無(wú)法安裝的情況,開發(fā)者可以排查一下自己的企業(yè)開發(fā)者證書是否已過(guò)期或是否被撤銷。因?yàn)樘O果對(duì)于企業(yè)開發(fā)者證書監(jiān)測(cè)比較嚴(yán)格,一旦開發(fā)者使用不當(dāng),可能會(huì)導(dǎo)致企業(yè)證書被蘋果官方封掉撤銷,被撤銷后的企業(yè)證書導(dǎo)出的安裝包,也是無(wú)法正確安裝的。
在蘋果iOS應(yīng)用的 Architecture(架構(gòu)),決定了這款iOS應(yīng)用可以在哪些設(shè)備機(jī)型上安裝。例如,如果某個(gè)應(yīng)用在Xcode中只添加arm64這一種Architecture,那么最終打包后的安裝包文件上傳后,對(duì)于iPad mini、iPhone5等以下設(shè)備,基本上是無(wú)法安裝的(因?yàn)檫@些設(shè)備都不是arm64架構(gòu))。換言之,計(jì)入需要在某個(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類型。
App支持的iOS系統(tǒng)版本過(guò)低或者過(guò)高,都有可能導(dǎo)致App無(wú)法安裝成功。例如,假如某個(gè) App設(shè)置了只支持iOS 11.0以上的系統(tǒng)時(shí),那么,如果在低于這個(gè)版本的系統(tǒng)上安裝時(shí),那么是無(wú)法安裝成功的。
因此,解決的方法也很簡(jiǎn)單,我們應(yīng)該讓App盡可能支持更寬泛的系統(tǒng)版本。具體操作方式是:在Xcode - General - Deployment Info - Deployment Target 中,給App設(shè)置一個(gè)盡量低的版本,例如 iOS 6.0。
這樣的情況下,也會(huì)造成App安裝失敗。解決的方式很簡(jiǎn)單,用戶只需將設(shè)備上原來(lái)已經(jīng)安裝的App刪除,然后再重新安裝新的App即可。
對(duì)于蘋果iOS的 App 來(lái)說(shuō),如果Info.plist文件中的LSRequiresIPhoneOS沒(méi)有進(jìn)行設(shè)置,或者設(shè)置了NO,那么由Xcode導(dǎo)出的安裝包(ipa 包),就不會(huì)包含Payload文件夾,而是被一個(gè)叫做Applications的文件夾代替。這樣的安裝包在安裝時(shí),會(huì)被蘋果iOS判定為無(wú)效的安裝包,所以無(wú)法被正確安裝。
解決方式也很簡(jiǎn)單,只需要將Info.plist文件中的LSRequiresIPhoneOS設(shè)置為YES,然后重新打包即可。具體操作為:在 Xcode 中打開 Info.plist 文件,然后檢查L(zhǎng)SRequiresIPhoneOS是否已設(shè)置,如果沒(méi)有設(shè)置,就添加一個(gè),然后將LSRequiresIPhoneOS的類型設(shè)置為Boolean,值設(shè)置為YES。設(shè)置好以后,可以看到Info.plist文件中顯示 Application requires iPhone environment 的值為YES。
當(dāng)遇到這種情況,用戶可檢查自己手機(jī)的所連接的網(wǎng)絡(luò)是否穩(wěn)定、速度是否正常等??梢試L試切換一下其他網(wǎng)站,或者更換一個(gè)Wi-Fi,或者由Wi-Fi換成3G/4G等,然后再試試重新安裝。用這樣的方式嘗試后,一般都可以解決問(wèn)題。
以上。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。