Xcode プロジェクトで設定で、アプリの DeploymentTarget と テストの DeploymentTarget の相違解消方法
Sponsor Link
環境&対象
以下の環境で動作確認を行なっています。
- 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
以下の場所で確認できます。誰もがみたことがあるかと思います。
UnitTest の Deployment Target
以下の箇所で確認・指定することができます。アプリターゲットと同じだと思っていたので、確認したことありませんでした・・・
アプリとテストの Deployment Target の一致のさせ方
先の設定画面で、同じターゲットを指定することで一致させることができます。
わかってみれば簡単ですが、別の設定になっていることを知らないとハマります。
説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。
Sponsor Link