65

Xcode 6.3 ベータ 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 の展開ターゲットがあり、常にそうですが、Xcode 6.3 ベータ 1、2、および 3 を使用して問題なく WatchKit コンポーネント (Swift 1.2 を使用) 用の iOS 8.3 SDK を使用してきました。エラーは Xcode 6.3 beta 4 でのみ発生しました。

他の誰かがこのエラーを抱えていて、それを修正する方法を知っていますか?

4

7 に答える 7

100

プロジェクト設定を選択し、「TARGETS」に移動します。ウォッチ キット アプリをクリックし、[ビルド設定] を選択します。キー「iOS Deployment Target」については、「iOS 8.3」を見つける必要があります。何らかの理由で、Xcode 6.3 Beta 4 は、「デバッグ」と「リリース」のために「iOS 8.2」でこれを使用したいと考えています。これで、プロジェクトが期待どおりにビルドされるはずです。

これは、XCODE 6.3 リリースにも当てはまります。

于 2015-04-13T07:46:31.340 に答える
38

ターゲット -> "appName" ウォッチ キット アプリ -> 配置を検索 -> iOS 8.2 で iOS 配置ターゲットを変更 -> 実行 ここに画像の説明を入力

于 2015-04-25T13:41:00.117 に答える
16

自分でこれに遭遇しました。Xcode 6.3 beta 4 のバグのようです。

project.pbxprojWatchKit 拡張子を持つ新しく作成されたプロジェクトのファイルを (テキスト ビューで) 分析しました。以下の設定があるようです。

IPHONEOS_DEPLOYMENT_TARGET = 8.2;

...これは、以前の Xcode バージョンで作成されたプロジェクトにはありません。

そのため、この設定をプロジェクトのデバッグ構成とリリース構成に手動でコピーしました。このエラーはなくなりました。

その後、自分のアプリと WatchKit アプリ ターゲットの間のバージョンの不一致に関する別のエラーが発生しました。このバージョンの不一致を修正すると、ビルドがクリーンにコンパイルされ、正常に実行されるようになりました。

これが少しハックであることはわかっていますが、比較的安全だと思います。

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 に答える
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 に移動 -> Watch Kit App を選択し、展開の下で値を 8.3 から 8.3 に変更します。

//:構成 = デバッグ IPHONEOS_DEPLOYMENT_TARGET = 8.2

//:構成 = リリース IPHONEOS_DEPLOYMENT_TARGET = 8.2

クリーンアップしてビルドします。問題が解決しました!

于 2015-04-13T15:44:03.413 に答える
0

Xcode 7.3.1 のシミュレーターで同じ問題が発生し、 Watch App に移動してから、 Watch OS deployment target に移動することで解決できます。そこで、ウォッチに基づいて下位バージョンを選択できます。

于 2016-06-26T08:10:48.583 に答える