Edited at

CocoaPodsとCarthageの両方に対応した自作Swiftライブラリを作る


  • Swiftの自作ライブラリを作る

  • そのライブラリをCocoaPodsとCarthageに対応させる

以下の例ではライブラリ名をMyLibとしてます.


プロジェクトを作成する

ライブラリの開発と公開するためのプロジェクトを作成します.ファイル構成は以下のように作ります.

スクリーンショット 2018-12-04 19.52.43.png

XcodeのProjectの新規作成でCocoa Touch Frameworkを選びます.

スクリーンショット 2018-12-04 19.31.04.png

スクリーンショット 2018-12-04 19.32.11.png

ライブラリの検証のために Target Example を追加します.

スクリーンショット 2018-12-04 19.32.42.png

スクリーンショット 2018-12-04 19.33.07.png

スクリーンショット 2018-12-04 19.42.13.png

Example の General の Linked Frameworks... にて,MyLib.framework を追加します

スクリーンショット 2018-12-04 19.34.49.png

Example 内で import MyLib を読み込めば,MyLib で作成したクラスなどを実行することができます.

スクリーンショット 2018-12-04 19.44.12.png

作成したプロジェクトの MyLib でライブラリを開発して,Example 内で検証およびサンプルコードを書いていきます.開発が終わったら,プロジェクトをGithubにpushします.


Carthageを設定する

ライブラリの schemeをsharedにします(最近は最初からsharedになっている?).そして,以下のコマンドで Carthage 向けにビルドを行います.

$ carthage build --no-skip-current

その後,pushして,releaseタグを設定すれば完了です(更新時も同様).

スクリーンショット 2018-12-04 20.14.51.png


CocoaPodsを設定する

ユーザー登録を行う.このセッションの効期限はよく分からないですが公式サイトを見ると端末ごとに保存される感じでしょうか( CocoaPods Guides - Getting setup with Trunk

$ pod trunk register {email} '{name}'

ライブラリにCocoaPodsを設定する.

$ pod spec create https://github.com/{user}/{repo}

生成されたpodspecファイルを編集します

$ pod lib lint {repo}.podspec

podspecファイルの確認を行い,完了したら以下で登録します.

$ pod trunk push {repo}.podspec

更新するときは,podspecファイルのversionを書き換えて,再びpushする.


参考