[Xcode] アプリ向けとテスト向けの DeploymentTarget

     

TAGS:

⌛️ < 1 min.
Xcode プロジェクトで設定で、アプリの DeploymentTarget と テストの DeploymentTarget の相違解消方法

環境&対象

以下の環境で動作確認を行なっています。

  • macOS Big Sur 11.1
  • Xcode 12.3

アプリの DeploymentTarget と UnitTest の Deployment Target

アプリの DeploymentTarget と UnitTest の Deployment Target は、別々に管理されています。

相違すると発生するエラー

以前までは、テストの Deployment Target は、アプリの Deployment Target が使用されると思ってました。が、違いました。

例えば 「macOS 10.15 対応で作っていたが、SwiftUI 2.0 を使いたくて、途中から macOS11 対応に変更した」というようなケースでは、アプリは普通に実行できるのですが、テストを実行しようとすると、以下のようなエラーがでてしまいます。

コンパイルエラー

/<ファイルパス>/UnitTestColorPickerTests.swift:9:18: 
Compiling for macOS 10.15, but module 'UnitTestColorPicker' has a minimum deployment target of macOS 11.0:
 /<ファイルパス>/Products/Debug/UnitTestColorPicker.swiftmodule/x86_64-apple-macos.swiftmodule

エラー内容は、「macOS 10.15 向けにコンパイルしようとしたけど、アプリの minimum deployment target は、macOS 11.0 なのですが・・・」という内容です。

# あらためて読んでみて、問題点を直接指摘しないエラーメッセージだということに気づきました。

アプリの Deployment Target

以下の場所で確認できます。誰もがみたことがあるかと思います。

DeploymentTarget For App
DeploymentTarget For App

UnitTest の Deployment Target

以下の箇所で確認・指定することができます。アプリターゲットと同じだと思っていたので、確認したことありませんでした・・・

DeploymentTarget for Test
DeploymentTarget for Test

アプリとテストの Deployment Target の一致のさせ方

先の設定画面で、同じターゲットを指定することで一致させることができます。

わかってみれば簡単ですが、別の設定になっていることを知らないとハマります。

説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です