Xcode でオリジナルのFramworkをつくる手順、その後Podsでインストール 【Swift/iOSアプリ開発】

SwiftのiOSアプリ開発に関する記事です。今回はじめて Xcode で、オリジナルのFramworkをつくってみました。その手順と、 GitHubに公開したフレームワークをPodsでインストールするまでのやり方をご紹介いたします。

ゴール

iOSアプリ開発でログを出力、保存できるライブラリ SSLog(Simplify Swift Logger)を作ってみました。

GitHubで公開したこのライブラリは、Podfileに下記のように追記してインストールできます。

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 ファイルを作成します。以下のように記述します。

SSLog.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から認識させるために、以下のコマンドを実行します。

zsh
git tag 0.1.0
git push --tags

CocoaPodsへの公開

公開するためには、pod trunk コマンドを使用してCocoaPodsにフレームワークを登録するか、個別にGitHub上からインストール可能にします。今回は個別インストールのみに対応します。

Podsでインストール

最後に、公開したライブラリをPodsでインストールします。

Podfileの編集

利用するプロジェクトのPodfileに以下を追加します。

Podfile
target 'YourApp' do
  pod 'SSLog', :git => 'https://github.com/aragig/SSLog.git', :tag => '0.1.0'
end

Podのインストール

ターミナルでプロジェクトディレクトリに移動し、pod installコマンドを実行します。

zsh
pod install

SSLogを利用する

インストール後、プロジェクトで import SSLog を追加し、以下のようにログ出力機能を呼び出すことができます。

swift
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()

    }
}

次のようなフォーマットで、ログがローカルドキュメントに保存されます。

log
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化されたことで関心の分離ができ、別の言語への移植も簡単になります。

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム