Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行项目时未找到Cordova IOS插件_Ios_Iphone_Xcode_Cordova_Cordova Plugins - Fatal编程技术网

运行项目时未找到Cordova IOS插件

运行项目时未找到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

我已经创建了一个cordova项目cordova create sampleApp com.sample.app sampleApp 然后我做了cordova平台添加ios,然后cordova插件添加cordova插件设备

档案:

platforms/ios/ios.json

在ios.json中,我在下面的json中添加了一个名为sayHelloPlugin的自定义插件

{
    "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