首页 > 解决方案 > 将 Watch app Extension 添加到现有 iOS 应用程序 cordova build ios 命令构建失败。(使用 Cordova ios 6.1.0 和 xcode:11.3.1)

问题描述

当我将手表应用程序扩展添加到现有 ios 并运行 cordova build ios 命令时,应用程序出现以下错误并且无法运行“cordova build ios”命令。

错误:无法解析平台“iphonesimulator”的产品类型“com.apple.product-type.watchkit2-extension”(在项目“myapp”的目标“myapp Extension”中)(下面给出的堆栈跟踪)

请帮助我们解决构建问题。

问题

我已将手表应用程序扩展添加到我现有的 iOS 移动应用程序中。添加当我在 mac 终端中运行“cordova build enter code hereios -verbose”时出现以下问题。

错误 :

CordovaError:无法解析 /Users/pblrmac/Desktop/Eswar_Watch/watch_With_Notifications/working/myapp_watch_working_Bak/platforms/ios/myapp.xcodeproj/project.pbxproj:CordovaError:

找不到 -Info.plist 文件或 config.xml 文件

在 updateProject 的 handleBuildSettings (/Users/pblrmac/Desktop/Eswar_Watch/watch_With_Notifications/working/myapp_watch_working_Bak/platforms/ios/cordova/lib/prepare.js:279:31)

为了解决这个问题,我添加了 Cordova 开发团队成员 @leogoesger 建议代码(#764)https://github.com/apache/cordova-ios/issues/764

在 /platforms/ios/cordova/lib/projectFile.js 文件中。

replaced
        
var xcBuildConfiguration = xcodeproj.pbxXCBuildConfigurationSection();
        var plist_file_entry = _.find(xcBuildConfiguration, function(entry) {
        return entry.buildSettings && entry.buildSettings.INFOPLIST_FILE;
        });
        
with
        
        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)
        );
        });
    

当我运行cordova build ios命令低于错误时,此问题已修复。

SHARED_PRECOMPS_DIR=/Users/pblrmac/Desktop/Eswar_Watch/watch_With_Notifications/myapp_watch_working_Bak/platforms/ios/build/sharedpch 从命令行构建设置:CONFIGURATION_BUILD_DIR = /Users/pblrmac/Desktop/Eswar_Watch/watch_With_Notifications/myapp_watch_working_Bak/platforms/ios/build/emulator SDKROOT = iphonesimulator13.2 SHARED_PRECOMPS_DIR = /Users/pblrmac/Desktop/Eswar_Watch/watch_With_Notifications/myapp_watch_working_Bak/platforms/ios/build/sharedpch 注意:使用新构建系统 注意:规划构建 注意:构建构建描述

错误:无法解析平台“iphonesimulator”的产品类型“com.apple.product-type.watchkit2-extension”(在项目“myapp”的目标“myapp Extension”中)

标签: ioscordova

解决方案


推荐阅读