4

私は現在、似たような Cocoa デスクトップ アプリをいくつか開発しています。それらの間でコードを共有するために、これらすべてのアプリケーションに共通するコア クラスと関数のセットを特定しました。この共通コードを、現在のすべてのアプリケーション (および将来のアプリケーション) がリンクできるフレームワークにバンドルしたいと考えています。

さて、ここが難しい部分です。このフレームワークを開発しながら開発していくので、各デスクトップ アプリがそれを参照できるようにする必要がありますが、各デスクトップ アプリ内からフレームワークのソース コードを編集できるようにしたいと考えています。必要に応じてフレームワークを自動的に再構築します。

たとえば、DesktopAppNumberOne の Xcode プロジェクトが開いていて、フレームワーク クラスの 1 つを変更する必要があると判断したとします。私はしたいと思います:

  1. Xcode でフレームワーク プロジェクトを開かなくても、そのフレームワーク クラスのソース ファイルを開いて編集します。
  2. DesktopAppNumberOne で「ビルド」をクリックし、最初にフレームワークが再構築されるのを確認し (そのソースの 1 つが変更されたため)、次に DesktopAppNumberOne の一部が再構築されたことを確認します (リンク先のフレームワークの 1 つが変更されたため)。

1 つのアプリと 1 つのフレームワークだけでこれを行う方法はわかりますが、1 つのフレームワークを共有する複数のアプリでそれを行う方法を理解するのに苦労しています。

このアプローチで成功した人はいますか?私はおそらくこれについて間違った方法で進んでいますか?どんな助けでも大歓迎です。

4

1 に答える 1

4

フレームワーク用の XCode プロジェクトを作成します。

[グループとファイル] パネル > 左上に青いプロジェクト アイコンが表示されますか? それを他のプロジェクトの「グループとファイル」パネルにドラッグ アンド ドロップします。

そのため、アプリ プロジェクトを作成し、フレームワーク プロジェクトからプロジェクト アイコンをドラッグします。

アプリ ターゲットの CMD-i。ここで、フレームワークへの依存関係を設定し、それに対してリンクします。

いくつかのポイント

複数のアプリを 1 つのフレームワークにリンクすると、ストレスがたまる可能性があります。フレームワークを /Library/Frameworks または同等の場所にインストールするか、各アプリにバンドルする必要があります。

開発目的では、プロジェクトごとにカスタムの共通ビルド ディレクトリを設定すると、作業が楽になります。各プロジェクトを/Code/Build/Debugにビルドするように設定しました。これは、デバッグ ビルドのフレームワーク検索パスが $CONFIGURATION_BUILD_DIR になる可能性があることを意味します。リリース ビルドでは、インストール パス、rpaths などでまだやるべきことがいくつかあります。

XConfig ファイルはあなたの友達です。オープン ソースの google mac ツールボックスは、それらの使用方法の良い例です。おそらく、少なくともProject_debug.xconfigProject_release.xconfigTarget_framework.xconfigTarget_application.xconfigが必要です。

于 2010-05-12T15:28:45.033 に答える