iphone各代cpu架構及xcode對ios sdk版本及cpu架構的支援

來源:互聯網
上載者:User

原來的iPhone,iPhone3G 以及 第一代和第二代的iPod Touch 均只支援 Armv6的CPU指令集。然而,隨著iPhone3GS
這款新產品的發布,Apple 開始支援新的指令集 Armv7,iPhone5的所有裝置支援Armv7s,且向下相容。為了保持向下相容,且支援舊有裝置及舊有指令集,Apple支援胖二進位代碼(fat binaries)也就是在可執行檔中支援更多的平台架構。 


但是好景不長,隨著Xcode 4.5也就是最新版本的Xcode的發布,蘋果宣布停止對armv6指令集的支援,強迫開發人員放棄iOS 4.2.1及以前的支援Armv6指令集的版本。在我看來,我依然認為支援舊裝置企業市場必須比公眾市場更長時間,所以放棄4.2.1及以前的版本,並不是我想要的。經過一段時間摸索,幸運的,我們發現了一些辦法,通過簡單的修改及配置,我們能夠編譯armv6指令集的代碼。 
以下是我們的一些方法,供大家參考: 

  • 找到一份舊版本Xcode的拷貝,推薦4.4.1,如果你是 iOS Developer Program的參與者,可以直接從developer.apple.com/ios下載。如果不是,那麼還是問一下百度
  • 解壓縮Xcode 拷貝出5.1的SDK Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/
  • 下來把拷貝出來的SDK移植進入Xcode 4.5中。例如: Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
  • 用Xcode開啟項目,點擊項目查看“Build Settings”屬性,會出現一個新的選項“Base SDK”:選中 iOS 5.0
  • 還在Build Settings下,找到 Valid Architectures。需要把armv7s 改成armv6
  • 現在我們可以編譯armv6了,但是還不能運行在任何armv6的裝置上,因為Target不對。我們再點擊Info選項,修改Target,例如 iOS 3.0或跟早的版本。你不會在下來菜單中找到3.0了,手填吧


以上就是所有的做法,但這一切並不太完美,例如你不能使用iOS 6的新特性,不能使用armv7s新的指令集等。當然了,如果你的Xcode通過Mac AppStore下載的,升級到新版本後,你還需要再加入一次SDK等等。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.