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 文档还是很有好处的,可以让你少走许多弯路。

时间: 2024-08-27 12:36:20

iOS微信支付demo运行报错解决如下的相关文章

iOS开发-url包含中文报错解决办法

经常, 我们用通过这样的方法调用API. NSString* urlString = [NSString stringWithFormat:@"http://api.douban.com/v2/movie/search?q=%@", content]; NSURL *url = [NSURL URLWithString:urlString]; testRequest = [ASIHTTPRequest requestWithURL:url]; [testRequest setDeleg

c# winform 引用sqlite.dll 运行报错解决方法

错误信息 :  未能加载文件或程序集“System.Data.SQLite, Version=1.0.81.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139”或它的某一个依赖项.试图加载格式不正确的程序. 原因是 此sqlite.dll 是32位的. 解决方法 ,将项目的 目标平台改为 x86 如图 c# winform 引用sqlite.dll 运行报错解决方法

iOS开发运行报错、常见问题

一.报错与警报 1.错误代码:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s) build 这个target的时候命令行报错.可以在 build setting 中,搜索bitcode,并吧 enable bitcode 设置为 NO. 2.ld:framework not found IOKit 终端输入以下2行内容 1 2 3 cd/Appl

解决新建Support7Demos的sample时出现编译错误和运行报错出现的问题

右键New->Other->Android Sample Project->选择Android 4.4.2->选择Support7Demos ,finish. 会出现编译错误 解决如下: 1.把这三个文件导入到Eclipse里, 这三个是库文件,并且勾选COPY到工作空间里选项 如果没有这三个文件,就从这里下载 2.导入三个library工程后,mediarouter会无法编译,打开工程属性在anroid里将api-level改成17,添加依赖工程appcompat 3.就是将刚才

windows 2003 64位系统php运行报错:1%不是有效的win32应用程序解决办法

windows 2003 64位系统php运行报错:1%不是有效的win32应用程序 解决办法:运行-CMD cscript c:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

安卓中运行报错Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决

安卓中运行报错Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决 安卓中运行报错Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决

运行Tomcat报错 解决方法

运行Tomcat报错 解决方法 运行Tomcat控制台报错: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/local/jdk1.6.0_26/jre/lib/i386/server:/usr/local/jdk1.6.0_26/jre/lib/i3

64位系统php运行报错:1%不是有效的win32应用程序解决

问题一:php运行报错:1% 不是有效的 win32 应用程序 php环境配置完毕后,运行html成功,但运行php就报错,错误提示是"1% 不是有效的 win32 应用程序",英文报%1 is not a valid Win32 application.第一次碰到这样的问题,经过搜索和试验,问题终于解决. 报错原因:由于在64位操作系统里,默认配置下,IIS工作在64位模式下,这会让许多32位的应用不能正常工作. 解决方法: 1)进入命令提示符:开始->运行 cmd 2)执行脚

appium在android 7.0真机上运行报错command failed shell:............ps:'uiautomator"的解决方式

appium版本:1_4_16 在CSDN中找到相关解决的方案,根据此解决方案顺利的解决了让人惆怅的问题,再次记录. 1.找到appium安装目录下的adb.js文件,目录为:Appium\node_modules\appium\node_modules\appium-adb\lib 2.打开adb.js,可使用notepad++编辑器等打开文件(说明:在修改代码的时候先注释掉以前的代码,并且添加自己容易识别的标记,以防出错后还有回旋的余地,或者将代码备份也可行),找到如下代码: ADB.pro