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

  • 14
    いいね
  • 0
    コメント

はじめに

GitHubで公開している自家製ライブラリをCarthageでインストールできるように対応させてみました。備忘のために手順をメモします。
ちなみに、タイトルにSwift3を入れましたが、特に従来の手順と大きく変わるところはありません。アクセスコントロールの修飾子の意味や種類が変わる程度です。

frameworkを作る

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

screenshot.png

次に、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

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

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