我最近在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)
提前致谢
答案 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')
);
});