Cordova ios添加扩展名 - 错误:找不到-Info.plist文件或config.xml文件

时间:2016-05-12 09:39:34

标签: ios cordova

我最近在Cordova上遇到了添加新目标应用扩展程序的问题。 我所拥有的是Cordova应用程序和我创建的自定义Cordova插件。 当我向我的ios应用添加扩展时(使用XCode - >文件 - > new - > target ...应用程序扩展:自定义键盘) 然后我尝试安装我的插件,我收到以下错误:

  

无法安装'paykey-plugin':CordovaError:找不到-Info.plist文件或config.xml文件。       在Object.parseProjectFile [作为解析](/Users/Yariv/Development/workspace/paykey/paykeyCordova/platforms/ios/cordova/lib/projectFile.js:50:15)       在Plugman.addPlugin(/Users/Yariv/Development/workspace/paykey/paykeyCordova/platforms/ios/cordova/lib/plugman/Plugman.js:68:31)       在Api.addPlugin(/Users/Yariv/Development/workspace/paykey/paykeyCordova/platforms/ios/cordova/Api.js:202:40)       在handleInstall(/Users/Yariv/npm/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:605:6)       at /Users/Yariv/npm/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:403:28       在_fulfilled(/Users/Yariv/npm/lib/node_modules/cordova/node_modules/q/q.js:787:54)       at self.promiseDispatch.done(/Users/Yariv/npm/lib/node_modules/cordova/node_modules/q/q.js:816:30)       在Promise.promise.promiseDispatch(/Users/Yariv/npm/lib/node_modules/cordova/node_modules/q/q.js:749:13)       at /Users/Yariv/npm/lib/node_modules/cordova/node_modules/q/q.js:509:49       在flush(/Users/Yariv/npm/lib/node_modules/cordova/node_modules/q/q.js:108:17)   错误:找不到-Info.plist文件或config.xml文件。   [12:38:19]'installPlugins'在1.39秒后出错   [12:38:19]错误:命令cordova plugin add ../paykeyCordovaPlugin失败,退出代码为1       在ChildProcess.exithandler(child_process.js:203:12)       在emitTwo(events.js:87:13)       在ChildProcess.emit(events.js:172:7)       在maybeClose(internal / child_process.js:818:16)       在Socket。 (内部/ child_process.js:319:11)       在emitOne(events.js:77:13)       在Socket.emit(events.js:169:7)       在Pipe._onclose(net.js:469:12)

提前致谢

2 个答案:

答案 0 :(得分:0)

可能是因为您的插件未为* -Info.plist使用正确的路径。

尝试使用诸如“子行文本”之类的文本编辑器打开位于平台/ios/YourAppName.xcodeproj/project.pbxproj中的project.pbxproj中的项目名称之前,删除或添加“ $(SRCROOT)”。

例如:

INFOPLIST_FILE =“ $(SRCROOT)/YourAppName/YourAppName-Info.plist”;

尝试删除“ $(SRCROOT)/”或添加“ $(SRCROOT)/”

答案 1 :(得分:0)

科尔多瓦发现了错误的Info.plist。也许您是在平台/ ios中手动创建的,例如一些扩展或appclip。

修改platform / ios / cordova / lib / projectFile.js第42,43行:

 const xcBuildConfiguration = xcodeproj.pbxXCBuildConfigurationSection();
 const plist_file_entry = _.find(xcBuildConfiguration, entry => entry.buildSettings && entry.buildSettings.INFOPLIST_FILE);

收件人:

var projectName = fs
    .readdirSync(project_dir)
    .find(d => d.includes(".xcworkspace"))
    .replace(".xcworkspace", "");

    var xcBuildConfiguration = xcodeproj.pbxXCBuildConfigurationSection();
    var plist_file_entry = _.find(xcBuildConfiguration, function(entry) {
        return (
            entry.buildSettings &&
            entry.buildSettings.INFOPLIST_FILE &&
            entry.buildSettings.INFOPLIST_FILE.includes(projectName+'-Info.plist')
        );
    });