IOS SDKで包括的なフレームワークを作成したいと考えています。私の要件は:
「フレームワークA」というフレームワークがあります。「フレームワークB」という別のフレームワークを作成したいと考えています。 「フレームワークA」を「フレームワークB」にサブフレームワークとして追加したいのですが、「フレームワークB」をプロジェクトにインポートするだけで、「フレームワークA」と「フレームワークB」の両方を使用できます。つまり、「フレームワークB」は「フレームワークA」のラッパーとして機能します。私はAppleから、フレームワークの作成に関する次のリンクを介して読みます:
しかし、それは包括的フレームワークを作成する方法を公開しません。
アンブレラフレームワークを作成するための段階的な方法を提案してください。
アンブレラフレームワークを作成することはAppleによって強く推奨されていないことは誰でも知っています。しかしAppleはXcodeを介してそれが可能であるとも述べています。 https://developer.Apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/CreationGuidelines.html# // Apple_ref/doc/uid/20002254-BAJHGGGA
Xcode 5.1でこれらのシンプルなアプローチを使用して、包括的なフレームワークを作成しました。サブフレームワークをアンブレラフレームワークにリンクするには、特別な構成を行う必要があります。これが私のアプローチでした:-
1)Xcode 5.1に実際のStatic iOS Framework
をここで説明されている方法でインストールします:- https://github.com/kstenerud/iOS-Universal-Framework 。
Xcodeの新しいオプションを使用して、「静的iOSフレームワーク」を作成できるようになりました。
2)Static iOS Framework
を作成し、Target-> Build Settings-> Architectures-> Architectures
設定を標準アーキテクチャーに変更します。これにより、すべての標準アーキテクチャを持つフレームワークが作成されます。
3)Target-> Build Phase-> Copy Headers
のパブリックヘッダーファイルを調整します。ここでヘッダーファイルの可視性を設定できます。
4)Target->Build Phase -> Link Binary With Libraries
のSubFrameworkをUmbrellaFrameworkにリンクします。用途によっては、他の標準フレームワークをリンクする必要がある場合もあります。
5)必要に応じて、Target-> Build Phase-> Copy Bundle Resources
にバンドルリソースを追加する必要がある場合もあります。
6)-ObjC
をTarget-> Build Settings->Linking-> Other Linker Flag
に追加する必要がある場合もあります。これは、ロードするカテゴリが多い場合や、追加のフレームワークもロードする必要がある場合に、大きなサブフレームワークをロードする必要がある場合があるためです。
7)Copy File
を使用してTarget-> Build Phases-> +-> New Copy File Build Phase
を追加します。
8)DestinationをFrameworks
に変更し、そこにSubFramework.frameworkを追加します。これにより、SubFrameworkがUmbrella Frameworkにコピーされます。
9)デモのために、UmbrellaFrameworkクラスに2つのデモメソッドを追加しました。 1つはアンブレラフレームワークのメソッド呼び出しを示すためのもので、もう1つはsubFrameworkメソッドを呼び出すためのものです。
10)iOS Device
を選択し、Menu->Product->Archive
からUmbrellaFrameworkプロジェクトをアーカイブします。これで包括的なフレームワークが作成されます。これですべてです。
11)次に、新しいデモプロジェクトを作成し、それをUmbrellaFrameworkとリンクします。
12)UmbrellaFrameworkヘッダーをインポートして、2つのメソッドを呼び出すだけです。ログウィンドウにHelloメッセージが表示されます。
Swiftサブフレームワークを含むUmbrella Frameworkベースのフレームワークを作成するには、以下に記載されているステップバイステップガイドに従ってください: mbrella framework