【问题标题】:Cordova ios adding extension - Error: could not find -Info.plist file, or config.xml fileCordova ios 添加扩展 - 错误:找不到 -Info.plist 文件或 config.xml 文件
【发布时间】:2016-09-08 01:24:36
【问题描述】:

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

无法安装“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) 在 /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) 在 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) 在 /Users/Yariv/npm/lib/node_modules/cordova/node_modules/q/q.js:509:49 冲洗时(/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) 在可能关闭(内部/child_process.js:818:16) 在套接字。 (内部/child_process.js:319:11) 在 emitOne (events.js:77:13) 在 Socket.emit (events.js:169:7) 在 Pipe._onclose (net.js:469:12)

提前致谢

【问题讨论】:

    标签: ios cordova


    【解决方案1】:

    cordova 发现了错误的 Info.plist。也许你在平台/ios中手动创建了一些东西,比如一些扩展或appclip。

    修改platforms/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')
            );
        });
    

    【讨论】:

      【解决方案2】:

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

      尝试在 project.pbxproj 中的项目名称前删除或添加“$(SRCROOT)”,当您使用“Subline Text”等文本编辑器打开它时,该项目位于platforms/ios/YourAppName.xcodeproj/project.pbxproj 中。

      例如:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-14
        • 2023-03-28
        • 2014-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多