2016-03-22 18 views
0

これは単なる情報的な質問です。私はiOSでフレームワークを作るためのいくつかの方法を検討しています。Objective Cフレームワーク/静的ライブラリは第三者フレームワークで構成できます

私は スウィフトピュア枠組みを作った: - そこ私はあなたが.xocdeprojectに含ま.frameworkを使用するようにアプリケーションプロジェクトにxcodeprojectを含める必要が、ことを知りました。だから私はこれが第三者にコードを渡すための安全な方法ではないと思っていましたし、自分のフレームワークにサードパーティのフレームワークを含める方法も見つけられませんでした。

目的静的ライブラリ: - このタイプライブラリで 、システムは安全で、実装部品を知らない人つもり使用はしかし、判明した.Aファイルを生成している私は、第三を含める場合エンドユーザーに、それをコンパイルするアプリケーションを終了するための第三者プロジェクトを含めるように依頼しなければなりません。エンドユーザーには、私が望んでいないすべての依存関係を表示します。

私の問題は、すべてのサードパーティのフレームワークで構成されるフレームワークを作りたいと思っていますが、それらからのコードは必要に応じてエンドユーザが使用することができますが、エンドユーザは隠してしまいます。私の枠組みのリストには載っていません。

出口がありますか?

私は多くのリンクを経て、多くは、一人が、すべてのヘッダファイルとフレームワークを取得するように要求されたこの記事では、この疑問にも

同様

Adding FacebookSDK.framework into my own Static library

を持っていることを見出しましたファイルを作成し、それを静的ライブラリに追加してフレームワーク自体を追加するようにビルドしました。

+0

フレームワークのエンドユーザーはどのように彼はこれらのフレームワークの.hのせずに自分のコードをコンパイルします、サードパーティ製のフレームワークのオブジェクトを使用することができますか? – Xvolks

+0

@Xvolks。これらのサードパーティフレームワークの.hファイルをフレームワーク/静的ライブラリに含める方法はありますか? – Saty

+0

あなたがしたいことはベストプラクティスではありません。あなたのフレームワークをFacebookSDKバージョン1とリンクさせ、ユーザーが自分のアプリケーションをあなたのフレームワークとFacebookSDKバージョン2にリンクしているとします。結果のアプリケーションには、各オブジェクトの2つの異なるバージョンがあります。実行時に使用されるバージョンは未定義です。ランダムなクラッシュや奇妙な動作が発生します。 – Xvolks

答えて

0

これをしないでください。

文字通り、あなたがしようとしていることの良い結果はありません。これは非常に混乱しており、ライブラリAPIを別のライブラリのAPIと結合して、ユーザーにサードパーティのlibのバージョンを使用させてもらう必要があります。

サードパーティの依存関係の新しいバージョンを使用したい場合は、シンボルが重複して表示されます。

このような練習に関する情報は、は誰もこれをしないので、インターネット上で見つけることはできません

すでにコンパイルされたライブラリを配布する場合は、ヘッダファイルを公開することなく、サードパーティのすべてのコードをコンパイルする以外に方法はありません。

非常に重要なことが残っています。サードパーティのライブラリを使用している場合、SDKのユーザーが重複するシンボルにならないようにする必要があります。

More here...

And here...

関連する問題