Edited at

Swift3製ライブラリをCarthage対応したときの手順

More than 1 year has passed since last update.


はじめに

GitHubで公開している自家製ライブラリをCarthageでインストールできるように対応させてみました。備忘のために手順をメモします。

ちなみに、タイトルにSwift3を入れましたが、特に従来の手順と大きく変わるところはありません。アクセスコントロールの修飾子の意味や種類が変わる程度です。


frameworkを作る

Cocoa touch frameworkをTargetsに追加します。操作としては、TARGETSの下の+から進んでいけば作れます。

次に、SwiftのソースファイルやStoryboardのリソースファイルを入れます。つまり、.swiftファイルは赤で囲ったCompile Sourcesへ。.StoryboardはCopy Bundle Resourcesへ。


アクセスコントロールを指定する

公開したいクラスや関数にpublicないしopenをつけます。

Swift 2.3とSwift 3でpublicの意味が違うので、注意します。Swift 3からは、継承を許す場合を区別してopenを使えるようになりました。

Swift 3からのアクセスコントロールの仕様変更については、Swift 3からのアクセスコントロールが詳しいです。


sharedにする

Carthageでインストールできるように、上のframeworkターゲットをsharedにします。つまり、Schemeの切り替えボタンから、frameworkのターゲットを指定して、Manage schemesを選択します。frameworkのターゲットの右端のSharedのチェックを入れます。Closeします。


検証する

Carthageによるインストールができるか検証します。つまり、ターミナルを起動してリポジトリのディレクトリに移動し、次のコマンドを実行します。

carthage build --no-skip-current

リポジトリフォルダ下にCarthage/Buildという階層が用意され、.frameworkファイルなどが作成できていれば正常です。

なお、これ自体をリモートリポジトリにプッシュする必要はありません。


プッシュする

以上で作ったローカルリポジトリの内容を、しかるべきブランチでコミットし、リモートにプッシュします。

基本的にこれでCarthage対応は完了です。

なお、GitHubのRelease管理のためのバージョンタグはここでつけておくと忘れないと思います。


README.mdの編集

README.mdにCarthage対応を示すこういうバッヂをつけることができます。

このコードを記述すれば表示されます。

[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/hsylife/SwiftyPickerPopover)

一方、インストール方法についての説明文面は、このように書けます。


For Installing with Carthage, add it to your Cartfile.

github "hsylife/SwiftyPickerPopover"



Carthageのframeworkのアップデートコマンド

ところで、サンプルプロジェクトにCarthageのframeworkを含めている場合、その更新は次のコマンドでできます。

Cartfileのあるディレクトリに移動した後で:

carthage update --platform iOS


参考リンク

Carthageの配布の仕方(すっごい簡単!)は簡潔に手順を説明してくださっています。

Carthageを使ってビルド時間を短縮しようはインストールを試すための手順について説明があります。

[Swift] CocoaPodsとCarthageの違い / ライブラリ管理

hsylife/SwiftyPickerPopoverは、実際に試したリポジトリです。