公升級xcode6踩坑大戰

2021-09-02 07:04:38 字數 1294 閱讀 3935

昨天公升級了xcode6,踩了幾個坑,主要是link的時候各種undefined symbols for architecture。把遇到的問題總結一下。關於undefined symbols for architecture的更詳細總結,見:

undefined symbols

pods was rejected as an implicit dependency for 『libpods.a』 because its architectures 『armv7s』 didn』t contain all required architectures 『arm64』

原因是xcode6工程預設的architectures配置了arm64,而老版本的pods只配置了armv7和armv7s,因此link error

[!] the `nailshop [debug]` target overrides the `other_ldflags` build setting defined in `pods/target support files/pods/pods.debug.xcconfig'. this can lead to problems with the cocoapods installation

- use the `$(inherited)` flag, or

- remove the build settings from the target.

按它的提示操作,其實也有坑。首先在xcode6裡,我沒有找到other_ldflags配置項,似乎是被other linker flags替換了;然後,按它說的刪除這個配置項也是不行的,而是要設定成$(inherited),正確配置的話,該項會自動填上值:

如果直接刪掉的話,這裡是空白,也是不行的

公升級以後,pods的architectures會配置成armv7和arm64(valid architectures是armv7 armv7s arm64,不要緊),build active architecture only的debug是yes,release是no。而主專案也應該配置成同樣的值

至此,libpods.a可以被正常link和載入了

有乙個view使用了opengl,在xcode5不需要額外import,但是在xcode6裡,編譯不通過,需要import標頭檔案:

#import
然後又是undefined symbols for architecture,原來是少引入了乙個framework。增加這行import之後,需要在build時加入opengles.framework茫茫多的黃色感嘆號,這個問題就是發現一處改一處,替換成ios8 sdk要求的寫法

Xcode6中新增pch檔案

1.新建工程 2 建立pch檔案 3 修改pch檔案,import 需要的標頭檔案 4 在setting中進行設定 5 pch標頭檔案的內容能被專案中的其他所有源檔案共享和訪問。pch檔案的作用 1.存放一些全域性的巨集 整個專案中都用得上的巨集 2.用來包含一些全部的標頭檔案 整個專案中都用得上的...

xcode6 使用layout自動布局

剛剛學習了xcode6的自動布局,發現網上的教程有很多,寫的也很詳細,但還是感覺很複雜,自己實現不了這個效果.但是最終還是嘗試出了一些方法,並且能夠實現較為固定的xib布局,可以作為layout的入門級別的吧.其實layout看上去很複雜,但是明白了最基本的原理之後就會變的清晰很多.layout中的...

xcode6模擬器路徑

1 xcode6模擬器路徑的變更 在xcode6中,將模擬器的位置進行了變更,位址如下 users username library developer coresimulator,開啟後會發現如下情況 在這裡,蘋果對模擬器進行了編碼處理,並不是以模擬器系統版本進行的命名和分類,而是對xcode6中...