iOS编译错误:'CDVCommandDelegateImpl'没有可见的@interface声明选择器'execute:'

Mar*_*ini 42 iphone objective-c ios cordova

升级到最新的Cordova版本(3.6.3)后,运行cordova build ios命令时出现此错误.

错误:

/Volumes/local.uhmuhm.net/projectxxx/htdocs/phonegap/src/Projectxxx/platforms/ios/Projectxxx/Classes/MainViewController.m:154:19: error: no visible @interface for 'CDVCommandDelegateImpl' declares the selector 'execute:' return [super execute:command];
Run Code Online (Sandbox Code Playgroud)

其他信息:

  • 安装平台:android 3.6.3,ios 3.6.3

  • 我在上一个xcode版本(6.0.1)

  • 在将Cordova升级到3.6.3之后一切都开始了(我之前运行的是3.4.1)

关于如何解决这个问题的任何想法?

在此输入图像描述

SKF*_*Fox 44

在Nazar所说的基础上,创建新应用程序和比较现有platforms/ios/Classes文件夹时唯一的重要区别就是execute从中删除了该方法MainViewController.m.

文件差异

这为我清除了构建错误.

  • 这解决了错误,但现在我得到了一堆'Apple Mach-O Linker'错误.Cordova平台更新根本没有用过. (6认同)

Vic*_*rov 29

我已经解决了同样的问题

cordova platform remove ios
cordova platform add ios
Run Code Online (Sandbox Code Playgroud)

  • 这将删除您在该目录中的所有源文件,只是您知道 (5认同)
  • 这是不必要的和破坏性的.下面的SKFox解决方案是应该被接受的解决方案,因为只需要它就可以实现它,并且您不会丢失作为现有iOS项目一部分的客观C代码. (3认同)
  • 我一直看到"删除并添加平台"作为Cordova问题的解决方案.这是一种痛苦,因为一开始我们必须恢复所有图标等等.`cordova平台更新ios`明显被打破,或者不够聪明. (2认同)

小智 13

cordova create使用新的cordova版本运行以创建新项目,然后复制AppDelegateMainViewController覆盖"旧"项目中的文件.之后错误消失了.