19
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CocoaPodsでインストールできるオリジナルライブラリを作成する(1)

Last updated at Posted at 2016-06-30

#目次

CocoaPodsでインストールできるオリジナルライブラリを作成する(1)
CocoaPodsでインストールできるオリジナルライブラリを作成する(2)
CocoaPodsでインストールできるオリジナルライブラリを作成する(3)
CocoaPodsでインストールできるオリジナルライブラリを作成する(4)

注意

この話を書く上の例として、
自作ライブラリの名前として "NeroBlu" という名前をつけています

これは自分の屋号から取ってきた名前なので、ただの「サンプル名」としてご認識ください
名前は各自でご自由につけなおしてくださいね

#まえがき

iOS開発をやってると CocoaPods は何かと便利です

Podfile ひとつを書き換えるだけで
誰かの作った便利なクラスたちをポコッと自分のアプリに導入したり
不必要であればバサッと削除できたり
たまに融通効かないですけど、いいヤツです

で、

こいつを自分の作ったクラスで
自分のために導入できるとなれば更に便利ですね

どうせ、新しくアプリを作ることになっても
だいたい最初に実装したりすることは同じです

同じことを何度も何度も書くのは非効率ですから
そのあたりを共通化しておいて
CocoaPods の仕組みを使って
CocoaPods で人のライブラリを使うように管理できるとすれば・・・

うん、便利かも!

ということで、
今回はそのあたりを書いていこうと思います

#作ってみる

GitHubでリポジトリ作成

GitHub上でリポジトリを新しく作りました

スクリーンショット 2016-06-29 23.57.52.png

Repository name"NeroBlu"にしました

リポジトリは Public にする必要があるようです

リポジトリ作成前に
README.mdLICENCE.gitignore を勝手にコミットしてくれる設定があるので、
勝手にやってもらうことにしました

.gitignoreに関しては Swift を選んでおけば後々楽ですね

ちなみに .gitignore は、
自動作成後、Pods/ 以下のファイルは無視するように設定しておくと後々便利です
(GitHubで作られたデフォルトではそうなっていていないので、書き換えておくとよいかと)

この時点でのディレクトリはこんな感じです

.DS_Store
.git
.gitignore
LICENSE
README.md

プロジェクトを作成

このディレクトリの中で
Xcodeで新しくプロジェクトを作成しました

File > New > Project から iOS SingleView Project を選択
名前の初期設定を行いますが
ここでプロジェクト名は本来の "NeroBlu" という名前にはせず
"NeroBluDemo" という名前にしました

この理由はあとで書きますが、ここがちょっとしたミソになります

この時点でのディレクトリはこんな感じです

.DS_Store
.git
.gitignore
Build
LICENSE
NeroBluDemo
NeroBluDemo.xcodeproj
README.md

CocoaPods を使って xcworkspace を作る

Xcodeは一旦終了して
このディレクトリにて CocoaPodsPodfile を作ってもらいます

pod init

この時に出来る Podfile は特に編集せずに
次にインストールを指示します

pod install --verbose

(--verbose を付けても付けなくてもよいです)

この時点でディレクトリ内は以下のようになりました

.DS_Store
.git
.gitignore
Build
LICENSE
NeroBluDemo
NeroBluDemo.xcodeproj
NeroBluDemo.xcworkspace
Podfile
Podfile.lock
Pods
README.md

ライブラリ部分を作成する

NeroBluDemo.xcworkspace をダブルクリックするなどして、Xcodeを再起動します

ここに「本体」であるライブラリ部分を追加します

要は、このプロジェクト自体は「本体」を載っけるための器であり、
同時にライブラリの動作を確認したり、デモしたりするために使うというわけです

なので、最初につけた名前が "NeroBlu" ではなく "NeroBluDemo" にしたというわけです

File > New > Target から
Framework & Library を選んで、 CocoaTouchFramework を選びました
ここで ProductName にはじめて "NeroBlu" という名前をつけます
それ以外の設定は特にいじらず Finish しました

スクリーンショット 2016-06-30 2.17.49.png

Xcode上はこういう構成になったかと思います

podspecファイルを作る

CocoaPods の仕組みを使って今作ったライブラリを使うためには
podspec という情報ファイルを作ってやる必要があります

ファイル名はライブラリの名前で大丈夫かと思いますので
ルートディレクトリに、以下の様なコマンドを打って早速作ります

vim NeroBlu.podspec

下記のテキストをこのファイルを vim で書き込みました
これ以外にも色々な情報を加える事ができますが
とりあえず今回は最低限必要かなと思うものを書きました

NeroBlu.podspec
d::Spec.new do |s|
  s.name         = "NeroBlu"
  s.version      = "1.0.0"
  s.summary      = "NeroBlu: Library for iOS."
  s.description  = ""
  s.frameworks   = "Foundation", "UIKit"
  s.source       = { :git => "https://github.com/xxxx/NeroBlu" }
  s.source_files = "NeroBlu/*"
end

大事なのは、名前もそうですが
sourcesource_files のパスがちゃんと通ることですかね
GitHab上のURLがちゃんとライブラリのルートを指しているかどうかなどは
最低限チェックしておいたほうがいいかもしれませんね

これで準備はOKだと思います

最終準備

ここまでやってきたことを git push を行います

GitHubd上こんな風になりました

スクリーンショット 2016-06-30 2.47.21.png

#使ってみる

今作ったものを早速使ってみようと思います

まったく別の CocoaPods を使用するプロジェクトを
立ち上げる、もしくは作成してください

その Podfile はこのように書きます

use_frameworks!

pod 'NeroBlu', :git => 'https://github.com/xxxxx/NeroBlu'

(use_frameworks!を書かないとうまくいかないパターンがありました)

これで

pod install

をしてみましょう

Updating local specs repositories

Analyzing dependencies
Pre-downloading: `NeroBlu` from `https://github.com/xxxxx/NeroBlu`
Downloading dependencies
Installing NeroBlu (1.0.0)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.

他のCocoaPodsインストール時と同じように
インストールが正常に走れば成功です

スクリーンショット 2016-07-01 2.21.25.png

用意したプロジェクト上こうなっていればOKですね

次回 はクラスライブラリに実際に実装をして
使用する側で使ってみるなどをしてみたいと思います

19
19
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
19
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?