2016-07-19 5 views
0

私はXcodeの初心者で、サードパーティのライブラリ(* .a)やフレームワークなど、Swift2でiOSフレームワークを作っています。iOSオールインワンフレームワークを作成できますか?私のフレームワークに私的な静的ライブラリを含めることができますか?

私は他人にAPIとして提供したいのですが、プライベートであるため、サードパーティ製のライブラリやフレームワークファイルを自分のフレームワーク配布ファイルから隠したいと思っています。

したがって、定義したAPIインターフェイスとクラスを開きたいだけです。

可能ですか?ビルドオプションを設定するには?

答えて

0

あなたはそれを行うことができますが、あなたが考慮する必要があるいくつかのものがあります:

  1. あなたが別のものに1つのフレームワークを埋め込むことはできませんが。つまり、特定のフレームワークのソースがない場合は、独自のフレームワークと一緒にそれを出荷する必要があります。ソースがある場合は、それらをあなたのフレームワークに直接コンパイルすることを検討するかもしれません。

  2. フレームワークで使用するソースに応じて、フレームワークの後処理をobfuscate private headersなどにする必要があるかもしれません。たとえば、Swiftと一緒にObjective-CまたはCコードを使用する場合は、 *.frameworkファイルの処理を後処理して、非公開にしたいAPIを非表示にします。

  3. フレームワークでSwiftコードを使用する場合、フレームワークはABIが存在しないため、同じSwiftコンパイラバージョンを持つ人のみが使用できることに注意してください。これは、あるコンパイラバージョンによって生成されたバイナリが、新しいバージョンのコンパイラと互換性がない可能性が高いことを意味します。

  4. 静的リンクライブラリをリンクすることができ、したがってフレームワークバイナリに直接マージすることができます。あなたは、あなたが目標としたいアーキテクチャのための互換性のあるバイナリを持っていることを確認する必要があります。例えば、シミュレータ用のビルドであった静的なリンクライブラリを使用することはできず、実際のiOSデバイス用に構築したいフレームワーク。

  5. フレームワークでSwiftを使用している場合、Swiftをアプリで使用するか、Embedded Content Contains Swift Codeビルド設定を有効にすることで、Swift dylibライブラリをアプリバンドルに含める必要があります。

関連する問題