簡體   English   中英

Cordova ios 添加擴展 - 錯誤:找不到 -Info.plist 文件或 config.xml 文件

[英]Cordova ios adding extension - Error: could not find -Info.plist file, or config.xml file

我最近在 Cordova 上遇到了添加新目標應用程序擴展的問題。 我擁有的是一個 Cordova 應用程序和一個我創建的自定義 Cordova 插件。 當我向我的 ios 應用程序添加擴展(使用 XCode -> 文件 -> 新建 -> 目標...應用程序擴展:自定義鍵盤)然后我嘗試安裝我的插件時,出現以下錯誤:

無法安裝“paykey-plugin”:CordovaError:找不到 -Info.plist 文件或 config.xml 文件。 在 Object.parseProjectFile [as parse] (/Users/Yariv/Development/workspace/paykey/paykeyCordova/platforms/ios/cordova/lib/projectFile.js:50:15) 在 Plugman.addPlugin (/Users/Yariv/Development/工作空間/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) at 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 at _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) at 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 at flush (/Users/Yariv/npm/lib/節點_mo dules/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在 ChildProcess.exithandler (child_process.js:203:12) 處失敗,退出代碼為 1在 Socket 的 ChildProcess.emit (events.js:172:7) 處的 emitTwo (events.js:87:13) 處可能關閉 (internal/child_process.js:818:16)。 (internal/child_process.js:319:11) atemieOne (events.js:77:13) at Socket.emit (events.js:169:7) at Pipe._onclose (net.js:469:12)

提前致謝

這可能是因為您的插件沒有為 *-Info.plist 使用正確的路徑。

嘗試在 project.pbxproj 中的項目名稱之前刪除或添加“$(SRCROOT)”,當您使用文本編輯器(例如“Subline Text”)打開它時,它位於platforms/ios/YourAppName.xcodeproj/project.pbxproj。

例如:

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

嘗試刪除“$(SRCROOT)/”或添加“$(SRCROOT)/”

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')
        );
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM