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の展開ターゲットを持ち、常に持っていますが、Xcodeを使用して問題なく、WatchKitコンポーネント用のiOS 8.3 SDKを使用しています(Swift 1.2)を使用) 6.3ベータ1、2、3。このエラーはXcode 6.3ベータ4でのみ発生しました。
他の誰かがこのエラーを抱えており、それを修正する方法を知っていますか?
プロジェクト設定を選択して、「ターゲット」に移動します。 Watch Kitアプリをクリックして、ビルド設定を選択します。キー「iOS Deployment Target」については、「iOS 8.3」が見つかります。何らかの理由で、Xcode 6.3 Beta 4は「iOS 8.2」で「デバッグ」および「リリース」のためにこれを使用したいと考えています。これで、プロジェクトが期待どおりにビルドされます。
これは、XCODE 6.3リリースにも当てはまります!
ターゲット-> "appName" Watch Kitアプリ->デプロイメントの検索-> iOS 8.2のiOSデプロイメントターゲットの変更->実行
自分でこれに走った。 Xcode 6.3 beta 4のバグのようです。
project.pbxproj
ファイル(テキストビュー)、WatchKit拡張機能を使用して新しく作成されたプロジェクト。設定があるように見えます:
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
...以前のXcodeバージョンで作成されたプロジェクトにはありません。
そのため、この設定をプロジェクトのデバッグおよびリリース構成に手動でコピーしました。このエラーはなくなりました。
その後、アプリとWatchKitアプリターゲットのバージョンの不一致に関する別のエラーが発生しました。このバージョンの不一致を修正することで、ビルドをクリーンにコンパイルして正常に実行できました。
これは少しハッキーだと思いますが、比較的安全だと思います。
Project.pbxprojファイルを検索する場合、次の検索用語と一致させる必要があります:"_WatchKit_Extension"
。これにより、新しい命令を追加する必要がある場所の近くの領域が識別されます。
Appleフォーラムのディスカッションスレッド:
https://devforums.Apple.com/thread/266033?tstart=
新しいプロジェクトからの抜粋:
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;
};
6.4でも驚くほど真実です;-)
すべてのターゲットを8.2に設定する必要があります
私は同じ問題に直面していました "iOS Deployment Target '8.3' is newer thatn SDK 'iOS 8.2' in target YUOR_PROJECT WatchKit Extension
"
この問題の簡単な解決策を次に示します。 .xcodeprojからターゲットを変更できます。以下の手順に従ってください。
それでおしまい。
あなたは私のような同じ問題を抱えている場合に役立ちます。
[ターゲット]に移動し、[Watch Kitアプリを選択]で、展開の変更値を8.3から
//:configuration =デバッグIPHONEOS_DEPLOYMENT_TARGET = 8.2
//:configuration =リリースIPHONEOS_DEPLOYMENT_TARGET = 8.2
きれいにしてビルドします。問題が解決しました!
Xcode 7.3.1を使用したシミュレーターで同じ問題を経験し、Appを監視し、それからWatch OSデプロイメントターゲットに移動すると解決できます。そこで、監視に基づいて下位バージョンを選択できます。