error: linker command failed with exit code 1 (use -v to see invocation)可以說是我們做開發(fā)遇到的最多的一個問題了,下面說下我遇到這個問題曾經(jīng)解決的方案

解決方案1:
回憶你最近剛剛寫的文件,找到之后查看是否在.m文件中的頭文件導(dǎo)入的時候?qū)氲氖且粋€.m文件 ?,如果是這樣的話,替換你所需要的頭文件的.h文件編譯既可以通過。
解決方案2:
一般在打包的時候會有這個問題,這里的解決方案是在Xcode中來到Build settings中 ?搜索bitcode ?然后更改屬性為No既可以編譯通過附帶截圖如下?

解決方案3:
如果之前的解決方案行不通不急? ,繼續(xù)以下方案 .在Xcode中來到Build settings中? 搜索link ?然后添加-Objc關(guān)鍵文字, 既可以編譯通過附帶截圖如下


如果解決問題3沒有編譯通過 ?嘗試加入-all_load 關(guān)鍵字再次編譯。
解釋說明:
-ObjC
這個flag告訴鏈接器把庫中定義的Objective-C類和Category都加載進來。這樣編譯之后的app會變大(因為加載了其他的objc代碼進來)。但是如果靜態(tài)庫中有類和category的話只有加入這個flag才行。
-all_load
這個flag是專門處理-ObjC的一個bug的。用了-ObjC以后,如果類庫中只有category沒有類的時候這些category還是加載不進來。變通方法就是加入-all_load或者-force-load。-all_load會強制鏈接器把目標(biāo)文件都加載進來,即使沒有objc代碼。-force_load在xcode3.2后可用。但是-force_load后面必須跟一個只想靜態(tài)庫的路
最終的結(jié)果是這樣的


解決方案4:
如果可悲的伙伴上述的方案依然沒有解決你的問題,那么不要灰心。小編在教你幾招
如果經(jīng)過上面的嘗試依然沒有解決問題,那么應(yīng)該就是你的第三方的問題了,查看最近加入的第三方框架是否添加了必要的依賴庫,可以重新查找在一一添加對應(yīng)的第三方框架所需要的依賴庫,在編譯看看是否解決了你的問題哪?

添加成功后的依賴庫:

最后編譯一下看看是不是通過了那??
解決方案5:
經(jīng)過上面的方法你依然沒有通過 ?也是醉了的情況 。小編告訴你最后一招就是編輯你的podfile文件,可以考慮把之前pod的文件全部重新刪除,然后重新添加,如果你可以定位到大致是哪個第三方的問題,可以在pod之前不需要添加指定版本號。
比如你使用的是pod 'ReactiveObjC', '~> 3.0.0'? 可以把, '~> 3.0.0'去掉 在重新pod install一下重新編譯 假如使用的是pod 'ReactiveObjC' ?這種方式默認(rèn)是使用最新的第三方。
如果編譯還沒有通過 ?重新加載第三方,使用pod update 命令 ,更新所有的第三方之后應(yīng)該即可編譯通過
感謝小伙伴的認(rèn)真學(xué)習(xí),如果我的方法有幫到你,點個??支持一下吧~