私はObjective-C開発が初めてです。OS X と iOS で利用できるアプリを作成したいと考えています。2 つのアプリは同じ基盤を共有するため、コードの重複を最小限に抑えるために 2 つのアプリで使用されるライブラリを作成することを考えています。2 つのアプリはクローズド ソースですが、ライブラリはオープン ソースです。
動的ライブラリに対する iOS の制限を認識していたので、この記事 に示すように、フレームワークと静的ライブラリの 2 つのターゲットを持つ単一のプロジェクトを作成するのが最善の解決策であると考えました。
上記の記事の助けを借りていくつかのプロトタイプを開始すると、ライブラリをリンクするための多くの解決策を見つけることができましたが、それらのいくつかはばかげているように見え、他のものには問題が発生しています.
ワークスペース
このソリューションは最も簡単なように思えます。ワークスペースにリストされている適切なターゲットにアプリをドラッグ アンド ドロップしてリンクするだけです。#import
ただし、ライブラリをメイン コードにしようとしているときにオートコンプリートが不足していることがわかりました。ライブラリは提案されませんでした。とにかく、自分で#import
行を書いてアプリをコンパイルしようとしました (Xcode によってエラーとして報告されました)。コンパイル後、Xcode はオートコンプリートを使用してライブラリを正しく提案していました...その説明はありますか?
また、その解決策について別の質問があります。アプリをリリース モードでコンパイルすると、リリース モードでもライブラリにリンクされますか、それともアプリとライブラリのリリース モードを指定する必要がありますか?
リンクする前にコンパイルする
別の解決策は、ライブラリを OS X フレームワークと iOS 静的ライブラリにコンパイルし、それらのバイナリをそれぞれのプロジェクト内にコピーしてリンクすることです。でも、デメリットしか考えられなかったのですが、その選択肢で何か良いことはありますか?
ソースを直接リンクする
AFNetworkingのように、ライブラリ ターゲットによって生成されたバイナリを使用せずにソースを直接リンクできます。
ココアポッド
このプロジェクトについて聞いたことがありますが、自分にとって役立つかどうかわかりません。
適切な方法を選択するための助けをいただければ幸いです。