LoginSignup
17
14

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-09-30

はじめに

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

17
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
14