error: linker command failed with exit code 1 (use -v to see invocation)可以說是我們做開發(fā)遇到的最多的一個問題了罚舱,下面說下我遇到這個問題曾經(jīng)解決的方案
解決方案1:
回憶你最近剛剛寫的文件彩库,找到之后查看是否在.m文件中的頭文件導入的時候?qū)氲氖且粋€.m文件 ?扭吁,如果是這樣的話,替換你所需要的頭文件的.h文件編譯既可以通過。
解決方案2:
一般在打包的時候會有這個問題,這里的解決方案是在Xcode中來到Build settings中 ?搜索bitcode ?然后更改屬性為No既可以編譯通過附帶截圖如下?
解決方案3:
如果之前的解決方案行不通不急? ,繼續(xù)以下方案 .在Xcode中來到Build settings中? 搜索link ?然后添加-Objc關鍵文字, 既可以編譯通過附帶截圖如下
如果解決問題3沒有編譯通過 ?嘗試加入-all_load 關鍵字再次編譯秤茅。
解釋說明:
-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會強制鏈接器把目標文件都加載進來粪般,即使沒有objc代碼拼余。-force_load在xcode3.2后可用。但是-force_load后面必須跟一個只想靜態(tài)庫的路
最終的結(jié)果是這樣的
解決方案4:
如果可悲的伙伴上述的方案依然沒有解決你的問題亩歹,那么不要灰心匙监。小編在教你幾招
如果經(jīng)過上面的嘗試依然沒有解決問題,那么應該就是你的第三方的問題了小作,查看最近加入的第三方框架是否添加了必要的依賴庫亭姥,可以重新查找在一一添加對應的第三方框架所需要的依賴庫,在編譯看看是否解決了你的問題哪顾稀?
添加成功后的依賴庫:
最后編譯一下看看是不是通過了那达罗??
解決方案5:
經(jīng)過上面的方法你依然沒有通過 ?也是醉了的情況 。小編告訴你最后一招就是編輯你的podfile文件静秆,可以考慮把之前pod的文件全部重新刪除粮揉,然后重新添加,如果你可以定位到大致是哪個第三方的問題抚笔,可以在pod之前不需要添加指定版本號扶认。
比如你使用的是pod 'ReactiveObjC', '~> 3.0.0'? 可以把, '~> 3.0.0'去掉 在重新pod install一下重新編譯 假如使用的是pod 'ReactiveObjC' ?這種方式默認是使用最新的第三方。
如果編譯還沒有通過 ?重新加載第三方殊橙,使用pod update 命令 辐宾,更新所有的第三方之后應該即可編譯通過
感謝小伙伴的認真學習,如果我的方法有幫到你膨蛮,點個??支持一下吧~