September 19, 2012

After iPhone5

上週iPhone5發表之後,很開心的下載了GM回來安裝,一併也把XCode更新到GM版。

用起來也沒什麼問題,只是一些先前build的.a檔要注意,因為新的iPhone5是ARMv7s的,所以需要重新build過v7s的.a檔即可。如果不急著用新手機,就從XCode裡面把v7s拿掉也可以。

不過今天跑另一個project才發現怪怪的。原來那個案子要支援到比較舊的手機,所以一直是用v6在build。然而,v6 build出來卻無法debug。

搜尋一下得到這篇
Changes in Xcode 4.5
Xcode 4.5 and later does not support generating armv6 binaries.
The minimum supported deployment target with Xcode 4.5 or later is iOS 4.3.
就是說,使用新的Xcode4.5已經不能夠再build armv6的binary出來了。

此刻的疑問是,誰是v6的呢?
答案在此
ARMv7 = iPhone 3GS/4, iPod 3G, iPad
ARMv6 = iPhone 2G/3G, iPod 1G/2G
好吧,看來Apple是打算把v6 fade out了......

最後,如果你想檢查使用的.a檔是否有包含v7的架構,可以使用底下指令。
 lipo -info xxx.a
Architectures in the fat file: xxx.a are: armv6 armv7

以上。