#はじめに#
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は、実際に試したリポジトリです。