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

升级到最新的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]; 

其他信息:

  • 安装平台:android 3.6.3, ios 3.6.3

  • 我在最后一个xcode版本(6.0.1)

  • 一切都开始升级cordova3.6.3(我之前运行3.4.1)

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

在这里输入图像说明

根据Nazar的说法,创build新应用程序和比较现有platforms/ios/Classes文件夹的唯一区别在于从MainViewController.m删除了execute方法。

文件差异

这清除了我的构build错误。

我已经解决了同样的问题

 cordova platform remove ios cordova platform add ios 

运行cordova create新的cordova版本来创build新项目,然后将AppDelegateMainViewController复制到“旧”项目中的文件上。 之后,错误消失了。

我今天也有同样的问题。 我追查到,CordovaLib / Classes / CDVCommandDelegateImpl.m文件没有这个:

 - (BOOL)execute:(CDVInvokedUrlCommand*)command { return [_commandQueue execute:command]; } 

因为它是在最新的cordova3.5.0相同的文件。 所以我已经在CDVCommandDelegateImpl.h文件中添加了这个代码片段,也是正确的声明:

 - (BOOL)execute:(CDVInvokedUrlCommand*)command; 

现在我的应用程序正在运行! 不知道这是否是一个好的解决scheme,但如果它的工作,那就足够了:)