1

複数のクライアント向けにプロジェクトをカスタマイズしようとしています。プロジェクトはCocoaPodsとストーリーボードを使用しています。途中でいくつかのバグを修正し、各クライアントのUIに変更を加えることを期待しているので、次のようにプロジェクトを整理します。1.起動中のiOSアプリをコンパイル済みの静的ライブラリに変換します(何らかの方法で)2。作成します新しいカスタマイズされたアプリ。静的ライブラリにリンクします。3.元のストーリーボードを新しいカスタマイズされたアプリにコピーします。

これで、「新しい」ストーリーボードで、クライアントのニーズに応じて変更を適用できます。カスタムクラスとしてストーリーボードで参照されるすべてのViewControllerには、元のアプリ(現在はコンパイルされた静的ライブラリ)で定義されたクラスがあります。このようにして、いつでも元のクラスを置き換えたり拡張したりして、新しいクラスをストーリーボードのViewControllerのカスタムクラスに設定できます。

それは私にはいいですね。しかし、私はそれを機能させることができません。1.元のiOSアプリから静的ライブラリを作成し、静的ライブラリとしてプロジェクトにセカンダリターゲットを追加しました。ヘッダーの検索パス、フラグ、およびリンクフレームワークに苦労した後、コンパイルしました(多くの警告があります)。2。新しいプロジェクトを作成し、静的ライブラリをリンクしましたが、コンパイルできません。

私の質問はです。1.私はこれを正しい方法で行っていますか?2.関連するヘッダーファイルを含む静的ライブラリがあり、前のファイルを使用する別の静的ライブラリを作成する場合。2番目に作成されたライブラリを新しいプロジェクトに使用する場合、ライブラリとヘッダーファイルの両方に対してリンクする必要がありますか?

4

1 に答える 1

0
  1. 理論的には機能するはずですが、個人的には静的ライブラリの代わりに静的フレームワークを作成するルートをたどりましたが、フレームワークはリンクしやすく、アーキテクチャごとに異なるバージョンを使用でき、同じヘッダーを含めることができるためです。パッケージ。フレームワーク プロジェクト タイプを Xcode に追加するには、このプロジェクトを確認してください: https://github.com/kstenerud/iOS-Universal-Framework。(デフォルトでFrameworkターゲットタイプを含めるには、誰かが本当にAppleにアクセスする必要があります)

  2. 私が間違っている場合は誰かが私を修正できますが、私が理解している限り: はい、両方のライブラリを最終的な実行可能ファイルにリンクする必要があります。ライブラリ 1 に対してライブラリ 2 をコンパイルしても、ライブラリ 1 のコードはライブラリ 2 に結合されません。

スタティック ライブラリを新しいプロジェクトにリンクするには、コンパイル エラーに関するより具体的な情報を取得する必要があります。

于 2013-03-07T20:06:29.890 に答える