整合微信SDK出現libc++abi.dylib: terminating with uncaught exception of type NSException,微信支付SDKDEMO執行編譯報錯
剛開始整合微信支付就來這樣的報錯,而且微信支付demo也都問題百出,解決了一個又一個
先說說執行微信SDK demo編譯錯誤的問題,其實很簡單:
Undefined symbols for architecture x86_64:
"_kCFStreamNetworkServiceTypeVoIP", referenced from:
-[WXOGCDAsyncSocket enableBackgroundingOnSocketWithCaveat:] in libWeChatSDK.a(GCDAsyncSocket.o)
"_kCFStreamPropertySSLSettings", referenced from:
-[WXOGCDAsyncSocket cf_startTLS] in libWeChatSDK.a(GCDAsyncSocket.o)
"_kCFStreamSSLPeerName", referenced from:
-[WXOGCDAsyncSocket ssl_startTLS] in libWeChatSDK.a(GCDAsyncSocket.o)
"_kCFStreamNetworkServiceType", referenced from:
-[WXOGCDAsyncSocket enableBackgroundingOnSocketWithCaveat:] in libWeChatSDK.a(GCDAsyncSocket.o)
"_kCFStreamSSLCertificates", referenced from:
-[WXOGCDAsyncSocket ssl_startTLS] in libWeChatSDK.a(GCDAsyncSocket.o)
"_kCFStreamSSLIsServer", referenced from:
-[WXOGCDAsyncSocket ssl_startTLS] in libWeChatSDK.a(GCDAsyncSocket.o)
"_kCFStreamSSLAllowsAnyRoot", referenced from:
-[WXOGCDAsyncSocket ssl_startTLS] in libWeChatSDK.a(GCDAsyncSocket.o)
"_kCFStreamSSLAllowsExpiredRoots", referenced from:
-[WXOGCDAsyncSocket ssl_startTLS] in libWeChatSDK.a(GCDAsyncSocket.o)
"_kCFStreamSSLValidatesCertificateChain", referenced from:
-[WXOGCDAsyncSocket ssl_startTLS] in libWeChatSDK.a(GCDAsyncSocket.o)
"_kCFStreamSSLAllowsExpiredCertificates", referenced from:
-[WXOGCDAsyncSocket ssl_startTLS] in libWeChatSDK.a(GCDAsyncSocket.o)
"_kCFStreamSSLLevel", referenced from:
-[WXOGCDAsyncSocket ssl_startTLS] in libWeChatSDK.a(GCDAsyncSocket.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
解決辦法:新增庫 CFNetwork.framework libc++.tbd
SDK出現libc++abi.dylib: terminating with uncaught exception of type NSException 的問題: 解決方法
工程檔案中選擇Build Setting,在"Other Linker Flags"中加入"-Objc -all_load" ,問題就解決了