web-dev-qa-db-ja.com

dyld:@availableを使用してiOS 12でアプリを実行すると、ライブラリがSwiftUIをロードしない(iOS 13.0、*)

アプリにSwiftUIを使用していくつかのビューを実装することにしました。アプリはiOS 12と下位互換性があります。

IOS 12デバイスで実行するまで、すべてが完璧に機能します。アプリがすぐにクラッシュし、SwiftUIを読み込めないという警告が表示されます。

dyld: Library not loaded: /System/Library/Frameworks/SwiftUI.framework/SwiftUI
  Referenced from: /var/containers/Bundle/Application/MyApp.app/MyApp
  Reason: image not found

すべての正しい場所で@available(iOS 13.0、*)を使用していますが、コンパイラの警告は表示されず、アプリはiOS 13で完全に実行されます

これをiOS 12で機能させるにはどうすればよいですか?

12
YichenBman

ビルドフェーズでSwiftUI.framwerkをオプションとしてマークすることもできます。以下の詳細な手順。

  1. Xcodeナビゲーターでプロジェクトファイルを選択します。
  2. アプリのターゲット(またはSwiftUIを使用しているターゲット)を選択します。
  3. 「ビルドフェーズ」タブを選択し、次に「バイナリをライブラリにリンク」セクションを選択します。
  4. 表示されるリストの下にある[+]ボタンをクリックします。
  5. ポップアップシートの検索フィールドに「SwiftUI」と入力し、「SwiftUI.framework」を選択して、「追加」をクリックします。
  6. テーブルの新しい行で、最後の列の[必須]ポップアップボタンをクリックします。値を「オプション」に変更します。
0
Kacper Dziubek