開發環境運行html
各位可能會以爲,筆者在此還要講開發環境的運行,是否是畫蛇添足。其實並不是如此,綜合筆者這幾年iOS開發經驗的總結,運行新版本,特別是測試版本的Xcode是一個須要格外當心的事情,講起來都是血淚史。緩存
在運行 GM 版本Xcode時,咱們須要特別注意如下幾個方面:
- 在運行GM版本Xcode前,務必要退出原來正式版本Xcode(如Xcode 6.4)
- 在運行GM版本Xcode時,務必要避免雙擊打開工程文件(也是爲了不新舊版本同時運行)。
- 若是要切換回原來版本時,必定要先退出GM版本,並且儘量將Xcode的緩存數據清除。
App 項目運行
待項目運行,首先會碰到的問題就是配置兼容,會出現以下錯誤安全
圖2.1 BitCode 錯誤服務器
當咱們看到App編譯報錯的時候,首先想項目不兼容Xcode7,再仔細一看網絡
1
|
ld: ‘/Volumes/MacintoshHD/…/AnimationDesk Universal/Sources/AnimaitonDesk Universal/Classes/Supporting Files/GoogleLibrary/libGoogleAnalyticsServices.a(TAGDataProvider.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode
for
this
target.
for
architecture arm64
|
其中 ENABLE_BITCODE 吸引了咱們的注意,看結合其它的描述信息,基本能夠肯定是咱們使用的第三方靜態庫(.a)不支持BitCode,固然,咱們對應就有以下兩種方案來解決:
方法一:更新對應的第三方靜態庫(如今更新的靜態庫,基本都能支持BitCode)
方法二:能夠將Xcode7默認開啓的BitCode功能關閉,如圖2.2所示app
圖2.2 關閉BitCode 操做示意圖less
固然,除了上面的問題外,當咱們在添加Framework的時候,會發現此前導入的動態連接庫(dylib)他部變成了紅色,如圖2.3所示,所幸的是,就算不替換成Xcode 7新的動態庫文件(.tbd),仍然能夠正常運行.圖2.3 動態連接庫丟失示意圖ide
最後,部分App在編譯的時候,可能還會收到以下報錯,小編也遇到過一次
測試
1
|
All interface orientations must be supported unless the app requires full screen.
|
看到這句提示,就是說App默認是有開啓了多任務功能,而多任務功能是須要App支持全部方向,若是咱們App是有須要支持多任務,則須要開啓App對各個方向(上、下、左、右)的支持;若是App不須要開啓多任務,則只須要將以下示意圖的 requires full screen 勾選上就ok(如圖2.4)。ui
圖2.4 勾選 Requires full screen示意圖
不出意外,接下來,App應該是能正常編譯運行(小編的AnimationDesk Cloud接下來是能夠正常運行),但緊接着,發生了更詭異的事情,之前的的網絡訪問,如今徹底訪問不通;你們也許會以爲這多是服務器掛了,或是外網被牆了,小編最初也是這麼想的,但事實上,服務器(從Safari)仍是能照常被訪問,只是App訪問不了,因而後來聯想到iOS9 WWDC講到的網絡數據傳輸安所有分,通過一翻折騰,最終,網絡訪問的部分也恢復了正常。
其實只要在App的Info.plist裏面加入以下信息就能夠
1
2
3
4
5
|
<key>
NSAppTransportSecurity
</key>
<dict>
<key>
NSAllowsArbitraryLoads
</key>
<
true
/>
</dict>
|
添加成功後的示意圖以下圖(圖2.4)
圖2.4 添加Transport Security 示意圖