主要做的就是把我遇到報錯還有一些解決方式進行了統計。
一.
報錯:Declaration uses __weak, but ARC is disabled。
解決方式:project ->targets(找到出問題的工程)->build settings -> weak references in manual retain release 置成Yes;
二.
報錯:ld: library not found for -lPods-pop
clang: error: linker command failed with exit code 1 (use -v to see invocation)
解決方式:這里的話情況分類會比較多。
1.點擊 XCode 工程文件,在 Build Phases 中查看 “ Link binary With Libraries” 你會發現里面有文件的名字是紅色的。右鍵點擊紅色條目,選擇 “Reveal in Project Navigator”這樣文件的路徑就回去了。感覺這種情況是最快能解決的。
2.可能是路徑填寫有問題。選中project中你需要編譯的target 然后在build settings里面有一個"Library Search Path"在這里將你對應缺少的library的地址寫入。注意,你不要寫本地地址這樣比較坑人,$(PROJECT_DIR)/ht/ThirdParty類似這樣來填寫正確的地址。
3.還有一種情況就是pod 集成的庫沒有被找到。點擊模擬器邊上的工程按鈕選擇edit scheme 選到build 然后+把pod的靜態庫加進入clean一下在重新編譯就可以通過了。
三.
報錯:ld: warning: directory not found for option
解決方式:這種情況下一般是由于你library的路徑有問題。:project ->targets(找到出問題的工程)->build settings-> Library Search Path 將錯誤的路徑刪除就可以了。
四.
報錯:Undefined symbols for architecture XXX(我報的是x86_64)
解決方式:
1.這里的情況很有可能是你少加入了靜態庫或者.m文件還是到Build Phases仔細校對一下你缺少了什么,add進入重新編譯就可以過了,他提示你缺少什么包你就add什么就可以了。
五.
報錯:duplicate symbol XXX in:
解決方式:從字面意思理解是定義了2次吧。奇怪了我哪里定義了2次嗎。
1.全局搜索下XXX這個被定義2次的屬性。意外的發現了
const CGFloat kHeaderHeight = 240.f;這是之前常用的方式方便理解。但是在xcode8中這是不被允許的。 需要在const 前面加上static 就能解決掉這個問題了。
六
報錯: _dispatch_barrier_sync_f_slow:brk #0x1
解決方式:在調用系統api通知請求打開的時候出現了死鎖狀況,原因是因為使用的騰訊sdk引起的換了一個新的sdk解決了這個問題。
小結:
暫時只找到了這么多,我還是會繼續記錄一些問題。其實中間還遇到過bitcode的問題。很多問題遇到了不記錄下來下次遇到還是容易忘記。決定給自己做一個的小的記錄在這里方便自己也方便大家。