zoukankan      html  css  js  c++  java
  • Cordova/CDVViewController.h file not found 解决办法

     

    最近把Xcode升级到7.1出现上述问题,可以运行app,但是在打包app提交到appstore的时候会报 Cordova/CDVViewController.h file not found 

           查了好久才找到原因,参考了http://stackoverflow.com/questions/33379291/cordova-app- failing-to-archive-with-xcode-7-1-cordova-cdvviewcontroller-h-file

          解决方法:

       Header Search Path 加入

    "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"

    附上几个网址 :

    Cordova 官网: http://cordova.apache.org/

    框架引入: http://www.jianshu.com/p/656838ae92bc

    交互原理: http://www.cnblogs.com/luoguoqiang1985/p/3574738.html

    坑1.在使用 Cordova 时, 注意: 自己工程里面的 cordovaLib 和 Cordova.js 要是同一个版本,否则将会发生你意想不到的事情,比如可以调用支付宝客户端,却调不到网页版的支付宝.切记.

    坑2.当引入了新的三方库的时候,运行工程并不会发现什么错误,但是在打包的时候,则会报错,说找不到库里的某个头文件,解决办法就是在 targets -> buildSettings -> Head Search Paths 里面添加下面一行代码:

    "$ (OBJROOT)/UninstalledProducts/include”

    坑3.当报错说 Object - C … xxxx.o 找不到时,往往是 .a 文件没有引入,引入相关的.a 文件就可以了.

    坑4.当 h5 调用本地的插件里的支付方法时,本地开始调用支付宝SDK,但是会爆一个错误:

    WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate: -[__NSDictionaryM objectAtIndex:]: unrecognized selector sent to instance 0x7fab8b252b60

    很显然,是把数组的方法,发送给了字典,通过打 断点调试的方法,进入 cordova 内部实现里面看 cordova 对参数的处理,发现 cordova 内部是用 数组来接收参数的,由于参数类型不对,当然会调不到支付宝并崩溃,解决办法是让后台把 JSON 数据放到数组里,当然别忘了通知安卓.

    5.当 cordova框架正确引入并且正常工作时,会打印:

    Apache Cordova native platform version x.x.x is starting.

    坑6.当使用模拟器run的时候,会报如下错误:

    LaunchServices: ERROR: There is no registered handler for URL scheme xxx

    我检查了下 info.plist 文件里的配置是没有问题的,后来发现这句话的意思是 设备上没有安装支付宝的客户端,所以此时会走网页端.

    坑7.今天出现了一个 bug , 就是触发事件的时候 iOS 这边会弹窗,而且连续弹好几次,如下图:


     

    后来发现服务器端也引入了 cordova.js 文件,而且和 native 使用的 cordova.js 不是同一个版本,改为了同一版本就 OK 了.而正常的情况下,考虑到还有安卓的存在,服务器端不应引入 js 文件,应该是在本地写入 cordova.js 到服务端,具体写入方法见本文第 9 条.

    8.加载 H5页面的 WebViewController 必须继承于 CDVViewController ,如图:


    9. 要在 webview 的代理方法 webViewDidFinishLoad 中 让服务端 读入 cordova.js 文件,而且 cordova.js 文件里面的注释要全部删除才能被读入,暂时还不知道要删除注释的原因 ,具体代码如图:

  • 相关阅读:
    Ruby:Hash 排序
    Rails bug: ROR + A server is already running. Check …/tmp/pids/server.pid. Exiting
    MySQL 删除数据的最好的方式
    FATAL ERROR: The persistent cache of section information does not match the current configu...
    http和https的区别
    SAP BusinessObject < Aggregate Navigation >
    BO Server Session Setting
    BusinessObject Port 配置
    重复提交
    FCKeditor
  • 原文地址:https://www.cnblogs.com/canghaixiaoyuer/p/5092245.html
Copyright © 2011-2022 走看看