Xcode でオリジナルのFramworkをつくる手順、その後Podsでインストール 【Swift/iOSアプリ開発】
SwiftのiOSアプリ開発に関する記事です。今回はじめて Xcode で、オリジナルのFramworkをつくってみました。その手順と、 GitHubに公開したフレームワークをPodsでインストールするまでのやり方をご紹介いたします。
ゴール
iOSアプリ開発でログを出力、保存できるライブラリ SSLog(Simplify Swift Logger)を作ってみました。
GitHubで公開したこのライブラリは、Podfileに下記のように追記してインストールできます。
pod 'SSLog', :git => 'https://github.com/aragig/SSLog.git', :tag => '0.1.0'
この仕組みを実現する手順をこれから紹介いたします。それほど難しくはありませんので、ぜひ参考になさってみてください。
XcodeでFrameworkを作成する
では、具体的な手順を以下に紹介します。
まずは、Xcodeを使ってオリジナルのフレームワークを作成しましょう。
新規プロジェクト作成
Xcodeを起動し、メニューから「File」→「New」→「Project…」を選択します。
Frameworkを選択
次に「iOS」の「Framework & Library」セクションから「Framework」を選択し、プロジェクト名(例:SSLog)を決定します。
Swiftファイルを追加
プロジェクトが作成されたら、ログを管理するSwiftファイルを作成します。具体的なロジックは SSLog/Log.swift をご覧ください。
Frameworkをビルド
Frameworkのコードを作成したら、テストコードやサンプルアプリをtargetに追加して十分テストします。
CocoaPods用にGitHubへ公開
次に、GitHubで公開してCocoaPodsからインストールできるようにします。
GitHubリポジトリを作成
GitHubで新しいリポジトリ(例:SSLog)を作成し、フレームワークのコードをプッシュします。
Podspecファイルの作成
CocoaPodsに対応するために、プロジェクトのルートディレクトリに .podspec ファイルを作成します。以下のように記述します。
Pod::Spec.new do |s|
s.name = 'SSLog'
s.version = '0.1.0'
s.summary = 'A simple logging framework.'
s.description = <<-DESC
SSLog is a lightweight logging framework for iOS that provides debug, info, warning, and error level logging.
DESC
s.homepage = 'https://github.com/aragig/SSLog'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'Toshihiko Arai' => 'i.officearai@gmail.com' }
s.source = { :git => 'https://github.com/aragig/SSLog.git', :tag => s.version.to_s }
s.ios.deployment_target = '10.0'
# ソースファイルのパスを修正
s.source_files = 'SSLog/*.swift', 'SSLog/*.h'
s.swift_version = '5.0'
end
バージョンタグの付与
タグを付与してCocoaPodsから認識させるために、以下のコマンドを実行します。
git tag 0.1.0
git push --tags
CocoaPodsへの公開
公開するためには、pod trunk コマンドを使用してCocoaPodsにフレームワークを登録するか、個別にGitHub上からインストール可能にします。今回は個別インストールのみに対応します。
Podsでインストール
最後に、公開したライブラリをPodsでインストールします。
Podfileの編集
利用するプロジェクトのPodfileに以下を追加します。
target 'YourApp' do
pod 'SSLog', :git => 'https://github.com/aragig/SSLog.git', :tag => '0.1.0'
end
Podのインストール
ターミナルでプロジェクトディレクトリに移動し、pod installコマンドを実行します。
pod install
SSLogを利用する
インストール後、プロジェクトで import SSLog を追加し、以下のようにログ出力機能を呼び出すことができます。
import SSLog
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
Log.enableLog = true
Log.logFileName = "SSLogSampleApp.log"
Log.d("Debug log test")
Log.i("Info log test")
Log.w("Warning log test")
Log.e("Error log test")
let logs: String? = Log.load()
print(logs ?? "")
Log.deleteLogFile()
}
}
次のようなフォーマットで、ログがローカルドキュメントに保存されます。
2024/09/16 14:28:13 [Debug] (ViewController.swift:19) viewDidLoad() - Debug log test
2024/09/16 14:28:13 [Info] (ViewController.swift:20) viewDidLoad() - Info log test
2024/09/16 14:28:13 [Warning] (ViewController.swift:21) viewDidLoad() - Warning log test
2024/09/16 14:28:13 [Error] (ViewController.swift:22) viewDidLoad() - Error log test
macOSからログファイルを閲覧する
Info.plistに以下を設定して、ファイルを共有します。
iPhone を macOS にUSBで繋げば、Finder からアプリ内のログファイルが確認できるはずです。ログの中身を閲覧する際は、一旦 Desktop などへコピーしてから行ってください。
これで、オリジナルのフレームワークをXcodeで作成し、GitHubに公開し、CocoaPodsでインストールする一連の手順が完了です。
まとめ
今回、ログ管理用のオリジナルFramework SSLogを作成し、GitHubで公開し、Podsでインストールする手順をご紹介しました。こうした流れを活用することで、プロジェクトに再利用可能な機能を組み込むことが可能になります。Framework化されたことで関心の分離ができ、別の言語への移植も簡単になります。