同じクラスとカスタム ビュー/ビュー コントローラーの多くを共有するいくつかのプロジェクトがあるため、クライアント プロジェクトで直接使用するこれらの共通クラスを含むカスタム スタティック ライブラリを作成しました。
これらは私が取ったステップです:
静的ライブラリを作成してコンパイルし、結果の .a および public .h ファイルをデスクトップ (myLib) のフォルダーにコピーしました。
myLib フォルダーをクライアント プロジェクトにドラッグ アンド ドロップしました。参照によってコピーしましたが、クライアント プロジェクトの物理ファイルをコピーしませんでした。ターゲットのビルド フェーズの "Link Binary With Libraries" フェーズには、予想どおり .a ファイルが自動的に含まれていました。
クライアント プロジェクトのストーリー ボードを使用して、ビュー コントローラーを参照しました。クラスは期待どおりにオートコンプリートされたので、Xcode はそれらの存在を認識します。
クライアント プロジェクトのビルド設定とターゲット ビルド設定の下に -ObjC および -all_load リンカー フラグを設定しました。
クライアント プロジェクトを正常にクリーンアップしてビルドしました。
クライアント プロジェクトを実行しましたが、"Interface Builder ファイル内の不明なクラス [myViewController]" を理由に、カスタム ビューが読み込まれませんでした。
ステップ6は私が今直面している問題です。役立つ可能性のあるその他の観察事項を次に示します。
File Inspector では、ヘッダーのターゲット メンバーシップは空白です。クライアント プロジェクトは [ターゲット メンバーシップ] 見出しの下に表示されますが、チェックボックスは無効になっており、チェックされていません。ただし、myLib.a ターゲット メンバーシップが選択されています。
クライアント プロジェクトで myViewController (clientViewController) のサブクラスを作成し、代わりにこのクラスを参照しようとしました。クライアント プロジェクトをビルドすると、次のエラーが表示されます。
「警告: オプション '-L/Users/[me]/Desktop/Projects/[clientProject]/[myLib] のディレクトリが見つかりません; アーキテクチャ i386 の未定義のシンボル: [clientViewController.o] の [clientViewController].」