ぬけてるエンジニアの備忘録

イケてない情報の掃き溜め。。。

【Swift】iOSライブラリの公開方法備忘

f:id:Yuchang:20161107154018p:plain

やりたいこと


1.iOS自作ライブラリを作る

2.Carthageに公開する

3.CocoaPodsに公開する


準備


Xcode 8.0

Swift3

CocoaPods 1.1.1

Carthage 0.18


iOS自作ライブラリを作る


プロジェクト新規作成

f:id:Yuchang:20161107154510p:plain

まずいつも通りXcodeから新規プロジェクトを作成していく。今回はSampleLibという名前で作成しました。この時Cocoa Touch Frameworkを選択してください。
今回は紹介しませんがこの方法以外にもpod lib create ライブラリ名コマンドを実行する事で対話形式でのプロジェクト作成も可能です。



デモプロジェクトを追加する

f:id:Yuchang:20161107162729p:plain

プロジェクトを新規作成したらデモプロジェクトを追加します。デモプロジェクトは先ほど作成したライブラリプロジェクトのライブラリ名.xcodeprojファイルと同階層に追加します。ライブラリ開発はこのデモプロジェクトでするようにします。



GitHubに公開する

自身のGitHubにここまでをpushしておきます。ここで特別な手順は特に無いのでGitHubの使い方などは割愛します。
READMELICENSEなども他のライブラリなどを参考にしながら記述してみてください。



Carthageに自作ライブラリを公開する


CarthageはHomebrewとかを利用してあらかじめインストールしておいて下さい。

schemeをsharedにする

f:id:Yuchang:20161107165122p:plain

ライブラリのプロジェクトからManage Schemes...を選択します。



f:id:Yuchang:20161107165306p:plain

schemeのsharedにチェックを入れてください。


そしてここまでをGitHubにpushしてreleaseタグをつけて下さい。

これでCarthageへの配布は完了です。 別のプロジェクトからインストールできる事が確認できると思います。
Cartfileの記述は以下のイメージ。

github "[GitHubユーザー名]/[リポジトリ名]"


ライブラリのアップデートをする際には最新版をpushしてreleaseタグをつけていけば更新できます。



CocoaPodsに自作ライブラリを公開する


CocoaPodsでライブラリを配布する場合にはまずpodspecというファイルが必要になります。

podspec作成

$ pod spec create https://github.com/[Githubユーザ名]/SampleLib

上記のコマンドを実行することでpodspecのテンプレートが生成されます。


Pod::Spec.new do |s|
  s.name         = "SampleLib"
  s.version      = "1.0.0"
  s.summary      = "[説明文]"
  s.homepage     = "https://github.com/[Githubユーザ名]/SampleLib"
  s.license      = { :type => "MIT", :file => "LICENSE" }
  s.author             = { "[作成者名]" => "[作成者メールアドレス]" }
  s.social_media_url   = "[SNSリンク等]"
  s.platform     = :ios,"9.0"
  s.source       = { :git => "https://github.com/[Githubユーザ名]/SampleLib.git", :tag => s.version }
  s.source_files  = "SampleLib/*"
  s.requires_arc = true
end

テンプレートの内容を修正して自身の情報を入力しておきましょう。


$ pod lib lint SampleLib.podspec

作成したpodspecファイルに問題がないかチェックできます。問題が発生すれば適時修正をして下さい。チェックを通過できれば次は公開です。


$ pod trunk push SampleLib.podspec

後はpod trunk pushを実行してしばらく待つと公開できます。 初回だとCocoaPods.orgにユーザー登録が必要になります。
ライブラリのアップデートしたい時にはpodspecを更新してpod trunk pushの手順で簡単に更新が可能です。



おまけ


iOSのライブラリ公開方法でググると色々と情報がでてきたので試しにAlertViewライブラリを公開してみました。本記事はその時の備忘として書いてみたので参考になる方がいれば幸いです。

今回の手順で配布したライブラリ

https://github.com/nukesk3/NKAlertView