65

我刚刚下载了 Xcode 6.3 beta 4,我的 WatchKit 应用程序现在无法构建并出现错误:

Embedded Binary Validation Utility Error
error: WatchKit apps must have a deployment target equal to iOS 8.2 (was 8.3)

iOS 应用程序和项目实际上有一个 7.1 的部署目标并且一直都有,但是我们一直在为我们的 WatchKit 组件(使用 Swift 1.2)使用 iOS 8.3 SDK,使用 Xcode 6.3 beta 1、2 和 3 没有问题。这个错误仅出现在 Xcode 6.3 beta 4 中。

其他人有这个错误,并且知道如何解决它?

4

7 回答 7

100

选择您的项目设置并转到“目标”。单击您的 Watch Kit 应用程序,选择构建设置。对于关键的“iOS 部署目标”,您应该找到“iOS 8.3”。出于某种原因,Xcode 6.3 Beta 4 希望在“iOS 8.2”上为“调试”和“发布”提供此功能。现在您的项目应该按预期构建。

XCODE 6.3 版本仍然如此!

于 2015-04-13T07:46:31.340 回答
38

Target -> “appName” Watch Kit App -> 搜索部署 -> 在 iOS 8.2 上更改 iOS 部署目标 -> 运行 在此处输入图像描述

于 2015-04-25T13:41:00.117 回答
16

我自己也遇到了这个。似乎是 Xcode 6.3 beta 4 中的一个错误。

我分析了project.pbxproj一个带有 WatchKit 扩展的新创建项目的文件(在文本视图中)。看起来有一个设置:

IPHONEOS_DEPLOYMENT_TARGET = 8.2;

...这是我们使用早期 Xcode 版本创建的项目所缺少的。

所以我手动将此设置复制到我的项目的调试和发布配置中。这个错误消失了。

然后我收到另一个关于我的应用程序和 WatchKit 应用程序目标之间版本不匹配的错误。修复此版本不匹配允许构建编译干净并运行良好。

我知道这有点hacky,但我猜它相对安全。

搜索 project.pbxproj 文件时,您需要匹配以下搜索词:"_WatchKit_Extension". 这应该确定应该添加新指令的附近区域。

Apple 论坛中的讨论主题:

https://devforums.apple.com/thread/266033?tstart=0

摘自一个新项目:

4F9F32751AC2024F00673D86 /* Debug */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                GCC_PREPROCESSOR_DEFINITIONS = (
                    "DEBUG=1",
                    "$(inherited)",
                );
                IBSC_MODULE = Bogus_WatchKit_Extension;
                INFOPLIST_FILE = "Bogus WatchKit App/Info.plist";
                IPHONEOS_DEPLOYMENT_TARGET = 8.2;
                PRODUCT_NAME = "$(TARGET_NAME)";
                SKIP_INSTALL = YES;
                TARGETED_DEVICE_FAMILY = 4;
                "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
            };
            name = Debug;
        };
        4F9F32761AC2024F00673D86 /* Release */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                IBSC_MODULE = Bogus_WatchKit_Extension;
                INFOPLIST_FILE = "Bogus WatchKit App/Info.plist";
                IPHONEOS_DEPLOYMENT_TARGET = 8.2;
                PRODUCT_NAME = "$(TARGET_NAME)";
                SKIP_INSTALL = YES;
                TARGETED_DEVICE_FAMILY = 4;
                "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
            };
            name = Release;
        };
于 2015-03-25T07:36:12.283 回答
2

令人惊讶的是,在 6.4 中仍然如此;-)

所有目标必须设置为 8.2

于 2015-07-10T02:46:42.093 回答
1

我遇到了同样的问题“ iOS Deployment Target '8.3' is newer thatn SDK 'iOS 8.2' in target YUOR_PROJECT WatchKit Extension

这是此问题的简单解决方案。您可以从 .xcodeproj 更改目标,只需按照以下步骤操作:

  1. 在您的项目或 plist 文件中进行任何更改(更改构建/版本),
  2. 选择您修改后的项目文件
  3. 找到“8.3”(Command+F)并将其替换为 8.2。
  4. 我附上文件供参考。

而已。

如果您遇到与我相同的问题,它将对您有所帮助。

在此处输入图像描述

于 2015-04-06T08:59:54.503 回答
0

转到 Target -> Select Watch Kit App,在部署下将值从 8.3 更改为

//:配置 = 调试 IPHONEOS_DEPLOYMENT_TARGET = 8.2

//:配置 = 发布 IPHONEOS_DEPLOYMENT_TARGET = 8.2

清洁和建造。问题解决了!

于 2015-04-13T15:44:03.413 回答
0

在使用 Xcode 7.3.1 的模拟器中遇到了同样的问题,可以通过查看 App 来解决它,然后转到 Watch OS 部署目标,在那里您可以根据您的手表选择较低的版本。希望这有帮助。

于 2016-06-26T08:10:48.583 回答