iOS 9 の最小展開ターゲットを持つサード パーティのフレームワークをレガシー プロジェクトに追加していますが、フレームワーク自体には iOS 13 の最小サポート バージョンがあります。通常、バージョンの差分がそれほど大きくない場合は、フレームワークをリンクし、実行時にシステムのバージョンを確認します (つまり、#available
.armv7
サードパーティのフレームワークを統合した後、プロジェクトをビルドすることさえできません。
最終的には、ARCH の問題を解決するためにアプリのターゲット デプロイ バージョンを上げる必要があることはわかっていますが、サード パーティのフレームワークが統合されたプロジェクトのみをビルドすることが私の目標である場合、何かできることはありますか?
これまでのところ、私は試しました:
- 同じプロジェクト内の別のフレームワークで SDK を使用し、サード パーティのフレームワークで必要な最小要件と一致する、より高いデプロイ ターゲット バージョンを持つが、メイン ターゲットにフレームワークをインポートすると機能しません。
iOS 9 用にコンパイルしていますが、モジュール 'AnotherTargetFramework' には iOS 13.0 の最小展開ターゲットがあります
別のターゲットで SDK を使用し、両方
Facade
のターゲットに属するクラスを持ちFacade
ます#available
。Facade
他のターゲットのみに属するクラスを見つけることができません。ユーザー定義のマクロを追加します。たとえば
USE_3RDPARTYLIB
、サードパーティ フレームワークの使用を 内にラップし#if USE_3RDPARTYLIB
、スキームUSE_3RDPARTYLIB
を 1 に設定してから、ビルド フェーズ スクリプトで の値をチェックしUSE_3RDPARTYLIB
ます1
。
これまでのところ3は機能しているようですが、プロジェクトの設定に大きな影響を与えずに同じことを達成するためのより良い、よりクリーンな方法はありますか?
ありがとう!