Carthage で Framework を公開する
先日 Framework を作って Carthage でインストールできるようにしたので、その手順を書いておきます。
作ったものはこちらで紹介しています。
Workspace や Project を作る
ディレクトリ構成
Workspace や Project のディレクトリ構成ですが、今回は以下のようにしてみました。
あくまで一例なので、他の方が作られたものを参考にしたりして、自分好みでわかりやすい構成にしていけば良いのかなと思います。
GradientAnimationView ├── Demo │ ├── Demo.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ └── contents.xcworkspacedata │ ├── Source │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── ViewController.storyboard │ │ ├── Info.plist │ │ └── ViewController.swift │ └── demo.gif ├── GradientAnimationView │ ├── GradientAnimationView.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── xcschemes │ │ └── GradientAnimationView.xcscheme │ └── Source │ ├── GradientAnimationView.h │ ├── GradientAnimationView.swift │ └── Info.plist ├── GradientAnimationView.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── WorkspaceSettings.xcsettings ├── LICENSE └── README.md
Workspace を作る
Workspace は必須ではないのですが、作ってその中に Framework とそれを使ったデモアプリを入れておくと、Framework を開発しながらすぐにデモアプリで動作確認ができるので開発が楽になります。
利用者もデモアプリを実行して Framework がどんなものかを簡単に触ることができるので親切かと思います。
Demo Project を作る
デモアプリとなる Project で、 Framework の開発時にはこの Project を実行して動作確認しながら進めて行きます。
今回は Single View App の Project を Demo
という名前で作りました。
Framework Project を作る
Cocoa Touch Framework として Project を作ります。
開発する
あとは思いのままに Framework を作っていきます。 インタフェースには Public や Open を適切に付与します。これらを付与したもの以外は外部から参照できません。
ビルド対象を Framework に変更してビルドすることで、 Public や Open が付与されたものを Demo Project から参照できるようになるので、 Demo Proejct の方で Framework を使ったアプリを作っていきます。
動作確認する際には、ビルド対象を Demo に変更して実行するだけです。
Cathage でインストールできるようにする
以下の手順で開発した Framework の Scheme を Shared にすることでインストールできるようになります。
ビルド対象を選択するところから Manage Schemes を選択します。
Framework Project の右端にある Shared のチェックボックスにチェックを入れます。
READEME を書く
概要や使い方を書きます。
Shields.io: Quality metadata badges for open source projects
こちらから適切なバッジを選んだり作ったりしてつけるとそれっぽくなります。 以下のようなバッジを簡単に作ることができます。
また、View 系の Framework の場合、動作がわかる GIF を載せておくと親切と思います。 GIF ファイルは Quick Time Player と ffmpeg から簡単に作れます。雑ですが、以下のようにして作れます。
動画を撮影する
- Quick Time Player を起動
- メニューバー
- ファイル
- 新規画面収録 (または Control + Command + N)
- ファイル
- 録画ボタンをクリック
- 録画対象を選択して録画
- 全体であればクリックするだけ
- 一部であればドラッグすることで録画対象を選択できる
- その後録画ボタンをクリック
- 録画ボタンをクリックすると同時にカーソルを素早く移動すればカーソルを映さないこともできる
- その後録画ボタンをクリック
- 録画を止める
- Control + Command + Esc
動画をGIFに変換する
brew install ffmpeg ffmpeg -i input.mov -r 10 output.gif
リリースする
タグをアップロードする
git コマンドでタグをつけてリモートリポジトリにプッシュします。
git tag 0.1.0 -m "コメント" git push origin 0.1.0
リリースノートを作成する
GitHub の Release ページの Draft a new release
ボタンをクリックするとリリース作成画面が開きます。
リリース対象のタグ・リリースの名前・リリース内容を埋めます。
すると以下のようなリリースノートが作成されます。
※上の画像は以前 LabelPicker という Framework を作ったときのものです。
おわりに
以上で作業は完了です。
初めて作った時は色々と手こずったのですが、 carthage update
で自分が作った Framework がインストールできた時は感動しました!
初めての方もぜひチャレンジしてみてください〜