既存の回答とコメントには、異なるはずのいくつかのものが混在していると思うので、私の回答...
あなたはすでにそれを理解しているように見えるので、私はあなたのアプリプロジェクトの複数のターゲット部分を意図的に除外していることに注意してください。私の答えは、ライブラリを構築するサブプロジェクトの使用に集中しています。
プロジェクト内にプロジェクトを埋め込むことができ、すべてのターゲットに共通のエンジン部分を、4 つのターゲットを持つより大きなプロジェクト内に埋め込むことができれば便利だろうと誰かに言われました。
サブプロジェクトは Xcode の優れた機能です。これを行うには、最初にスタティック ライブラリ テンプレートを使用するプロジェクトを作成することをお勧めします。
次に、コア エンジンを作成するために必要なすべてのファイルをその新しいプロジェクトに追加します。これをさらに engine-library-project と呼びます。
それが完了したら、アプリを作成する新しいプロジェクトを作成します。既存のプロジェクトを使用することもできますが、そのプロジェクトからすべてのエンジン実装ファイルを削除してください (リンカー エラーを防ぐため)。
ここで、engine-library-project と app-project の 2 つのプロジェクトを作成したとします。
次に、組み合わせ部分です。まず、engine-library-project が閉じられていることを確認し、app-project が Xcode 内で開かれていることを確認します。
engine-library-project バンドル (.xcodeproj) をファインダーから app-project に直接ドラッグします。
あとは、app-project が engine-library にリンクしていることを確認するだけです。これを行うには、 Link Binary With Librariesタブの下部にある小さなプラス記号をタップする必要があります。
ポップアップする選択ダイアログには、ライブラリが最初のオプションとしてリストされます。
ここで、すべての engine-library ヘッダーがヘッダー検索パスに追加して、アプリ プロジェクトに表示されるようにします。
すべてを正しく実行し、重要な手順を省略していなければ (省略していたらすみません)、アプリはライブラリ サブプロジェクトを使用して完全に正常にビルドされるはずです。
これらの手順がすべて適切に完了したら、エンジン ライブラリを他の開発者に配布するためのオプションを検討することもできます。source-project で git-submodule を使用することもできますが、結果のライブラリのみで git-submodule を使用することもできます。そうすれば、他の開発者がエンジン ライブラリをいじることができなくなります。これは、(多くの場合、私の経験から) 良いことです。