iOS微信支付demo運行報錯解決如下
阿新 • • 發佈:2017-06-06
art llb readme ring -objc override 項目 技術 cep
![技術分享](http://upload-images.jianshu.io/upload_images/329784-6b202e81852428fd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![技術分享](http://upload-images.jianshu.io/upload_images/329784-294ca7a426b72fc9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
官方README路徑 文檔還是很有好處的,可以讓你少走許多彎路。
要接入微信支付的小夥伴,首先要下載一份官方demo(APP微信支付官方Demo下載),然後打開工程,準備大幹一場。
1、編譯報錯
編譯的時候居然直接報錯了(orz)
-
錯誤提示:
APP微信支付官方Demo報錯 -
解決方法:添加
CFNetwork.framework
庫
選中項目名稱 -> 選中TARGETS -> 選中Build Phases -> 在Link Binary With Libraries中添加 -> 點擊“+”號,加入CFNetwork.framework
。
2、運行報錯
修改之後編譯成功,接下來就可以運行了,當出來熟悉的微信啟動頁地球的時候,你可能頓時送了一口氣,然而接下來又有一個坑在等著你:
-
錯誤提示:
2017-03-17 10:23:39.380 SDKSample[53804:1647093] -[__NSArrayM enqueue:]: unrecognized selector sent to instance 0x61000005a190 2017-03-17 10:23:39.383 SDKSample[53804:1647093] *** Terminating app due to uncaught exception ‘NSInvalidArgumentException‘, reason: ‘-[__NSArrayM enqueue:]: unrecognized selector sent to instance 0x61000005a190‘ *** First throw call stack: ( 0 CoreFoundation 0x000000010d821d4b __exceptionPreprocess + 171 1 libobjc.A.dylib 0x000000010d1d821e objc_exception_throw + 48 2 CoreFoundation 0x000000010d891f04 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132 3 CoreFoundation 0x000000010d7a7005 ___forwarding___ + 1013 4 CoreFoundation 0x000000010d7a6b88 _CF_forwarding_prep_0 + 120 5 SDKSample 0x000000010a87a51c -[WXOMTASocket send:callback:] + 129 6 SDKSample 0x000000010a87a715 -[WXOMTASocket sendEvent:callback:] + 295 7 SDKSample 0x000000010a85bc6a __reportOneEvent_block_invoke_3 + 252 8 SDKSample 0x000000010a85b8ea __reportOneEvent_block_invoke + 1407 9 libdispatch.dylib 0x000000010e2da978 _dispatch_call_block_and_release + 12 10 libdispatch.dylib 0x000000010e3040cd _dispatch_client_callout + 8 11 libdispatch.dylib 0x000000010e2e1e17 _dispatch_queue_serial_drain + 236 12 libdispatch.dylib 0x000000010e2e2b4b _dispatch_queue_invoke + 1073 13 libdispatch.dylib 0x000000010e2e302b _dispatch_queue_override_invoke + 683 14 libdispatch.dylib 0x000000010e2e5385 _dispatch_root_queue_drain + 720 15 libdispatch.dylib 0x000000010e2e5059 _dispatch_worker_thread3 + 123 16 libsystem_pthread.dylib 0x000000010e6b3712 _pthread_wqthread + 1299 17 libsystem_pthread.dylib 0x000000010e6b31ed start_wqthread + 13 ) libc++abi.dylib: terminating with uncaught exception of type NSException
截圖如下:
NSArrayM enqueue 錯誤 -
解決方法:
在工程配置中的”Other Linker Flags”中加入”-Objc -all_load”
添加 ”-Objc -all_load” 步驟
接下來你就可以愉快的運行 Demo了,但是下面的總結一定要看完。
3、總結
其實上面的兩個錯誤,在你下載的Demo裏面已經有提示了,是因為你沒有按照作者的步驟來進行配置:
![技術分享](http://upload-images.jianshu.io/upload_images/329784-6b202e81852428fd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
README.txt
- 註意
README.txt
文件路徑,因為Demo裏面還有個小寫的readme.txt
文檔。
![技術分享](http://upload-images.jianshu.io/upload_images/329784-294ca7a426b72fc9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
官方README路徑
有時候開發前閱讀作者的 README
iOS微信支付demo運行報錯解決如下