iOS微信支付官方demo编译运行报错的解决办法

要接入微信支付的小伙伴,首先要下载一份官方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里面已经有提示了,是因为你没有按照作者的步骤来进行配置:

`README.txt`
  • 注意 README.txt 文件路径,因为Demo里面还有个小写的 readme.txt 文档。
官方README路径

有时候开发前阅读作者的 README 文档还是很有好处的,可以让你少走许多弯路。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天碰巧下载了QQ浏览器iOS版本,居然一启动就挂了。后来从手机里面把崩溃信息导出来,仔细研究下,把研究的结果放到...
    yqmfly阅读 8,274评论 1 1
  • 关键时刻,第一时间送达! 问题种类 时间复杂度 在集合里数据量小的情况下时间复杂度对于性能的影响看起来微乎其微。但...
    C9090阅读 4,444评论 0 1
  • 跨平台:现在很多应用都是要兼顾iOS和Android两个平台同时开发。如果两个平台都能使用相同的数据库,那就不用考...
    CoderZS阅读 7,321评论 2 16
  • 首先如果遇到应用卡顿或者因为内存占用过多时一般使用Instruments里的来进行检测。但对于复杂情况可能就需要用...
    攻克乃还_阅读 6,266评论 0 7
  • 1 "安阳在上海找到工作了,公办老师。" 安阳是我的大学同学,他说要去上海找工作,要留在北京。很多同学都说他痴人说...
    小小在隐身阅读 2,885评论 0 0

友情链接更多精彩内容