运行项目时未找到Cordova IOS插件
我已经创建了一个cordova项目cordova create sampleApp com.sample.app sampleApp 然后我做了cordova平台添加ios,然后cordova插件添加cordova插件设备 档案: platforms/ios/ios.json 在ios.json中,我在下面的json中添加了一个名为sayHelloPlugin的自定义插件运行项目时未找到Cordova IOS插件,ios,iphone,xcode,cordova,cordova-plugins,Ios,Iphone,Xcode,Cordova,Cordova Plugins,我已经创建了一个cordova项目cordova create sampleApp com.sample.app sampleApp 然后我做了cordova平台添加ios,然后cordova插件添加cordova插件设备 档案: platforms/ios/ios.json 在ios.json中,我在下面的json中添加了一个名为sayHelloPlugin的自定义插件 { "prepare_queue": { "installed": [], "uni
{
"prepare_queue": {
"installed": [],
"uninstalled": []
},
"config_munge": {
"files": {
"config.xml": {
"parents": {
"/*": [
{
"xml": "<feature name=\"Device\"><param name=\"ios-package\" value=\"CDVDevice\" /></feature>",
"count": 1
},
{
"xml": "<feature name=\"sayHelloPlugin\"><param name=\"ios-package\" value=\"sayHelloPlugin\" /></feature>",
"count": 1
}
]
}
}
}
},
}
我的目标课看起来像
#import "SayHelloPlugin.h"
@implementation SayHelloPlugin
- (void)sayHello:(CDVInvokedUrlCommand*)command{
NSString *responseString =
[NSString stringWithFormat:@"Hello %@", [command.arguments objectAtIndex:0]];
CDVPluginResult *pluginResult =
[CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:responseString];
[self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
}
@end
当我执行cordova构建ios时,构建成功。
当我模拟并运行时,会收到一条错误消息
2016-01-19 05:39:44.017 sampleApp[21225:1854134] CDVPlugin class sayHelloPlugin (pluginName: SayHelloPlugin) does not exist.
2016-01-19 05:39:44.018 sampleApp[21225:1854134] ERROR: Plugin 'SayHelloPlugin' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2016-01-19 05:39:44.018 sampleApp[21225:1854134] -[CDVCommandQueue executePending] [Line 159] FAILED pluginJSON = ["SayHelloPlugin535510559","SayHelloPlugin","sayHello",["Hello"]]
如何解决这个问题 错误清楚地表明没有找到sayHelloPlugin。您演示了如何添加设备插件,但没有演示此特定插件。创建自定义插件可能需要使用Plugman 1安装Plugman 2在CLI中使用Plugman命令开始创建自定义插件,命令如下: 3为自定义插件添加平台 4创建并添加一个package.json 注意:如果点击“EACCESS:权限被拒绝”,则打开。。 请在命令前面添加“sudo”
plugman createpackagejson pluginName
参考文档链接:是的,sayHelloPlugin是我的自定义插件,我打电话给cordova.ExecSayHelloAccess,sayHelloFailure,sayHelloPlugin,sayHello,[name];在config.xml和ios.jsonOk中也添加了相同的插件,那么您是否按照说明添加了自己的插件?在你的问题中,afaik没有提到这一点。没有什么突出的地方——但我只构建了定制的Android插件。我建议你仔细检查一下医生:。也许你忘记了构建插件。
2016-01-19 05:39:44.017 sampleApp[21225:1854134] CDVPlugin class sayHelloPlugin (pluginName: SayHelloPlugin) does not exist.
2016-01-19 05:39:44.018 sampleApp[21225:1854134] ERROR: Plugin 'SayHelloPlugin' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2016-01-19 05:39:44.018 sampleApp[21225:1854134] -[CDVCommandQueue executePending] [Line 159] FAILED pluginJSON = ["SayHelloPlugin535510559","SayHelloPlugin","sayHello",["Hello"]]
$npm install -g plugman
plugman create --name pluginName --plugin_id "com.pluginName" --plugin_version 1.0.0 --project "PLUGIN_DIR/com.pluginName"
plugman platform add --platform_name ios
plugman createpackagejson pluginName