微信的文檔上說明是: 在你的工程文件中選擇Build Setting,在"Other Linker Flags"中加入"-Objc -all_load".
首先了解-Objc -all_load -force_load
參考地址: http://www.cnblogs.com/yashi88/p/3551947.html
-ObjC:這個flag告訴鏈接器把庫中定義的Objective-C類和Category都加載進來。這樣編譯之后的app會變大(因為加載了其他的objc代碼進來)。但是如果靜態庫中有類和category的話只有加入這個flag才行。
-all_load: 這個flag是專門處理-ObjC的一個bug的。用了-ObjC以后,如果類庫中只有category沒有類的時候這些category還是加載不進來。變通方法就是加入-all_load或者-force-load。-all_load會強制鏈接器把目標文件都加載進來,即使沒有objc代碼。-force_load在xcode3.2后可用。但是-force_load后面必須跟一個只想靜態庫的路徑。
-force_load: 后面必須要指定具體的文件。
但是代碼中使用-all_load會強制鏈接器把目標文件都加載進來,出現一大堆編譯bug,饒了好久才解決, 解決方案是不使用-all_load, 使用 -force_load $(PROJECT_DIR)/ios/SDKFrameWork/wxShare/libWeChatSDK.a (這個是我存放自己項目中的路徑) 把libWeChatSDK.a 加載進來即可。