0

同じクラスとカスタム ビュー/ビュー コントローラーの多くを共有するいくつかのプロジェクトがあるため、クライアント プロジェクトで直接使用するこれらの共通クラスを含むカスタム スタティック ライブラリを作成しました。

これらは私が取ったステップです:

  1. 静的ライブラリを作成してコンパイルし、結果の .a および public .h ファイルをデスクトップ (myLib) のフォルダーにコピーしました。

  2. myLib フォルダーをクライアント プロジェクトにドラッグ アンド ドロップしました。参照によってコピーしましたが、クライアント プロジェクトの物理ファイルをコピーしませんでした。ターゲットのビルド フェーズの "Link Binary With Libraries" フェーズには、予想どおり .a ファイルが自動的に含まれていました。

  3. クライアント プロジェクトのストーリー ボードを使用して、ビュー コントローラーを参照しました。クラスは期待どおりにオートコンプリートされたので、Xcode はそれらの存在を認識します。

  4. クライアント プロジェクトのビルド設定とターゲット ビルド設定の下に -ObjC および -all_load リンカー フラグを設定しました。

  5. クライアント プロジェクトを正常にクリーンアップしてビルドしました。

  6. クライアント プロジェクトを実行しましたが、"Interface Builder ファイル内の不明なクラス [myViewController]" を理由に、カスタム ビューが読み込まれませんでした。

ステップ6は私が今直面している問題です。役立つ可能性のあるその他の観察事項を次に示します。

  • File Inspector では、ヘッダーのターゲット メンバーシップは空白です。クライアント プロジェクトは [ターゲット メンバーシップ] 見出しの下に表示されますが、チェックボックスは無効になっており、チェックされていません。ただし、myLib.a ターゲット メンバーシップが選択されています。

  • クライアント プロジェクトで myViewController (clientViewController) のサブクラスを作成し、代わりにこのクラスを参照しようとしました。クライアント プロジェクトをビルドすると、次のエラーが表示されます。

    「警告: オプション '-L/Users/[me]/Desktop/Projects/[clientProject]/[myLib] のディレクトリが見つかりません; アーキテクチャ i386 の未定義のシンボル: [clientViewController.o] の [clientViewController].」

4

1 に答える 1

0

ビルド時のシミュレータ オプションは、見逃したようです。これを使うだけです。これは、通常のライブラリを作成するのと同じくらい簡単にユニバーサル フレームワークを作成する方法です: iOS-Universal-Framework

この記事もお読みください: Xcode 4 でユニバーサル スタティック ライブラリを作成する方法: 従来の方法

于 2013-02-11T03:18:02.563 に答える