iOSアプリを構築するときに、プロジェクトをモジュールやフレームワークに分割することは良い戦略です。 それはあなたが複数のアプリ間でフレームワークを共有することを可能にするでしょう、あなたはまた、他の開発者などとフレームワークを共有したい
このチュートリアルでは、フレームワークを作成する方法を説明します。 私たちは二つの非常に簡単なプロジェクトを作成します。 最初のプロジェクトはAnalyticFramework
と呼ばれ、2番目のプロジェクトはMainApp
と呼ばれます。
MainApp
はAnalyticFramework
をインポートし、Analytics
クラスを初期化してからlog
メソッドを呼び出します。 これは、フレームワークの作成と使用に関しては、簡単です。
チュートリアルを始めましょう。ステップ1:新しいフレームワークを作成する
これを行うには、Xcodeを開いて新しいプロジェクトを作成する必要があります。 しかし、Application
からプロジェクトタイプを選択する代わりに、Framework
を選択する必要がありますFramework & Library
:

ステップ2:プロジェクトの名前AnalyticFramework
プロジェクトの名前は次のとおりですAnalyticFramework
:

ステップ3:Analyticsクラスをフレームワークに追加する
ここで、プロジェクトに新しいファイルを追加する必要があります。 このファイルは、後でメッセージをログに記録するために使用するAnalytics
クラスになります。
新しいファイルを追加しましょう:

それがSwiftファイルであることを確認してください:

私は自分のファイルに名前を付けましたAnalytics
:

ステップ4:分析クラス
のコードを作成した新しいSwiftファイルに、次のコードを追加する必要があります:
public class Analytics { public init() {} public func log(message: String) { print("Log message: ", message) }}
これは単純なクラスですが、フレームワークの外でこのクラスを使用したいので、public
としてマークする必要があります。 これは、Analytics
をMainApp
でinitliaseするためにinitをpublicにする必要があるためですが、私たちの目的のためには引数を取らないので、空白のままにしてpublic
にします。
私たちのAnalytics
クラスの最後の部分はlog
メソッドです。 別のフレームワーク/プロジェクトから使用できるように、このpublic
を作成する必要があります。 log
メソッドは1つの引数message
を取り、コンソールに出力します。
ステップ5:MainAppを作成する
メインアプリ用の単一のビューアプリケーションを作成できるようになりました:

それに名前を付けますMainApp
:

今、私たちは私たちのMainApp
が作成されていることを、我々はでドラッグすることができますAnalyticFramework.xcodeproj
:
AnalyticFramework
をドラッグしているときは、Xcodeの別のインスタンスが開いていないことを確認してください。 私はXcodeの複数のインスタンスでフレームワークをドラッグしようとしたとき、それは正常に動作しません。
フレームワーク内をドラッグすると、そのフレームワークの内容を見ることができる小さな矢印が横にあるはずです。この写真のように
:

ステップ6: フレームワークをフレームワーク、ライブラリ、埋め込みコンテンツに追加する
これを行うには、左上のMainApp
プロジェクトをクリックし、General
タブに移動してからFramework, Libraries and Embedded Content
を探す必要があります。 それを見つけたら、+
ボタンをクリックしてください。
次の画像で何をする必要があるかを見ることができます:

+
ボタンをクリックすると、追加するフレームワークを選択するように求められます。:

上の画像のようにAnalyticFramework.framework
を選択してください。
ステップ7: フレームワークを使用してください
今、私たちはフレームワークを使用することができますすべての設定を持っています。 私はそれをviewDidLoad
私のViewController
ファイルのMainApp
で使用します。
以下のimport
をファイルの先頭に追加します。import UIKit
:
import AnalyticFramework
次に、viewDidLoad
を更新する必要があります。 現在のviewDidLoad
を次のように置き換えます:
override func viewDidLoad() { super.viewDidLoad() let analytics = Analytics() analytics.log(message: "analytics initialized") // Do any additional setup after loading the view.}
これで、アプリをビルドして実行できるようになります。 そうすると、Log message: analytics initialized
が印刷されます。