WatchKit 应用的部署目标必须等于 iOS 8.2(原为 8.3)?

WatchKit apps must have a deployment target equal to iOS 8.2 (was 8.3)?

我刚刚下载了 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 组件使用 iOS 8.3 SDK(使用 Swift 1.2) 使用 Xcode 6.3 beta 1、2 和 3 没有问题。这个错误只出现在 Xcode 6.3 beta 4.

还有其他人遇到此错误并知道如何解决吗?

运行 到这个我自己。似乎是 Xcode 6.3 beta 4 中的错误。

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

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

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

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

  1. 对您的项目或 plist 文件进行任何更改(更改 Build/version),
  2. Select 你修改的项目文件
  3. 找到“8.3”(Command+F) 并将其替换为 8.2。
  4. 我附上文件以供参考。

就是这样。

如果你和我有同样的问题,它会帮助你。

Select 您的项目设置并转到 "TARGETS"。单击您的 Watch Kit 应用程序,select 构建设置。对于密钥 "iOS Deployment Target",您应该找到 "iOS 8.3"。出于某种原因 Xcode 6.3 Beta 4 希望在 "iOS 8.2" 上为 "Debug" 和 "Release" 提供此功能。现在您的项目应该按预期构建。

XCODE 6.3 版本仍然如此!

转到目标 -> Select Watch Kit 应用程序, 在部署中将值从 8.3 更改为

//:配置=调试 IPHONEOS_DEPLOYMENT_TARGET = 8.2

//:配置=发布 IPHONEOS_DEPLOYMENT_TARGET = 8.2

清理并构建。问题已解决!

目标 -> "appName" Watch Kit 应用程序 -> 搜索部署 -> 在 iOS 8.2 上更改 iOS 部署目标 -> 运行

在 6.4 中仍然如此 ;-)

所有目标必须设置为 8.2

在使用 Xcode 7.3.1 的模拟器中遇到了同样的问题,可以通过查看 App 解决,然后转到 Watch OS deployment target ,在那里你可以根据你的选择较低的版本观看。希望对您有帮助。