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新项目,然后将AppDelegate
和MainViewController
复制到“旧”项目中的文件上。 之后,错误消失了。
我今天也有同样的问题。 我追查到,CordovaLib / Classes / CDVCommandDelegateImpl.m文件没有这个:
- (BOOL)execute:(CDVInvokedUrlCommand*)command { return [_commandQueue execute:command]; }
因为它是在最新的cordova3.5.0相同的文件。 所以我已经在CDVCommandDelegateImpl.h文件中添加了这个代码片段,也是正确的声明:
- (BOOL)execute:(CDVInvokedUrlCommand*)command;
现在我的应用程序正在运行! 不知道这是否是一个好的解决scheme,但如果它的工作,那就足够了:)