天天看點

讓Xcode 4.2生成的app支援舊版iOS裝置(armv6)

這幾天遇到一個非常奇怪的問題,基于Xcode 4.2開發的app,導出的ipa安裝包不能安裝到iPod Touch 2上。Touch2固件版本是4.2.1,已越獄。iTunes、91手機助手、同步推試過了都不行。但是其他ipa檔案可以成功安裝到Touch2上。而Xcode 4.2生成的ipa包在iPhone 4、iPhone 3GS、iPod Touch 4都能安裝成功并順利運作,無論固件什麼版本。初步分析的結果就是Xcode 4.2生成的app不支援Touch2。這幾天找了一些朋友幫我測試ipa安裝包,問一些有iOS開發經驗的朋友,最終有個朋友提醒我Xcode 4.2中,Project->Build Settings->Architectures->Release設定有關,經過修改,問題終于解決了,謝謝這位朋友!

原因分析:Xcode 4.2的Architectures設定預設隻有armv7,也就是新的iOS裝置,包括iPhone 3GS, iPhone 4, iPhone 4s, iPad, iPad2等,而iPhone, iPhone 3G, iPod Touch, iPod Touch 2屬于armv6架構。

解決方法:将Architectures設定為armv6 armv7,如下圖所示:

修改前:

讓Xcode 4.2生成的app支援舊版iOS裝置(armv6)

修改後:

讓Xcode 4.2生成的app支援舊版iOS裝置(armv6)

這樣設定後生成的ipa安裝包就可以支援舊版iOS裝置了。

另外Info設定中Required device capabilities預設隻有armv7,我也添加了armv6;也有人說要把Required device capabilities删掉,究竟哪種做法是最佳的目前我也不确定。

讓Xcode 4.2生成的app支援舊版iOS裝置(armv6)

繼續閱讀