Takahiro Octopress Blog

-1から始める情弱プログラミング

自作ライブラリをCocoaPodsで管理しよう!

自作ライブラリをCocoaPodsでインストールしたい

さて、本日はCocoaPodsについて書いてみます。
最近、GitHubなどで公開されているiOS向けOSSのほとんどはCocoaPodsで管理されていることと思います。
そんな中、『自分で開発したライブラリも皆に使ってもらうなら、カッコよくCocoaPodsでインストールしてほしい』といった思いも出てきますよね。
よし!やってみよう!というのが本日の記事です。

では、早速、その手順です。
まずは、CocoaPodsで管理する対象の構造を下記に示します。

1
2
3
4
5
6
7
Classes ━┳━━ jsonUtil
              ┣━━ jsonUtil.h
              ┗━━ jsonUtil.m
         
         ┗━━ Validation
               ┣━━ Validation.h
               ┗━━ Validation.m

1.GitHubにファイルをアップロード
OSSとして公開するのですから、GitHubにアップしましょう。
アカウントを作成して、新レポジトリを作成しましょう。
詳しくはGitHub(ギットハブ)の使い方:登録編を参考にしましょう。

2.podspecファイルを作成
ターミナルから公開したいファイルの階層に入り、podspecファイルを作成しましょう。

1
2
cd <指定ファイルのディレクトリ>
pod spec create <公開ライブラリの名称>

3.podspecファイルを編集
podspecファイルを編集して、GitHubとの連携などを設定しましょう。
とにかく今回書いたpodspecファイルは下記です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Pod::Spec.new do |s|

<省略>

  s.name         = "CocoaPodsSampleLibrary"
  s.version      = "0.0.1"
  s.summary      = "Library for CocoaPods Test"

  s.description  = <<-DESC
                   A longer description of CocoaPodsSampleLibrary in Markdown format.

                   * Think: Why did you write this? What is the focus? What does it do?
                   * CocoaPods will be using this to generate tags, and improve search results.
                   * Try to keep it short, snappy and to the point.
                   * Finally, don't worry about the indent, CocoaPods strips it!
                   DESC

  s.homepage     = "https://github.com/grandbig/CocoaPodsSampleLibrary"

<省略>


  s.source       = { :git => "https://github.com/grandbig/CocoaPodsSampleLibrary.git", :tag => "#{s.version}" }

<省略>

  s.subspec 'jsonUtil' do |ss|
    ss.source_files = 'Classes/jsonUtil/*.{h,m}'
  end

  s.subspec 'Validation' do |ss|
    ss.source_files = 'Classes/Validation/*.{h,m}'
  end

<省略>

end

s.sourceにはCocoaPodsでのインストールをするために:git => "..."の部分にGitHubからCloneするたときに指定するURLを書きましょう。

そして、CocoaPodsでインストールした後もフォルダ構成を保ちたいのであれば、単純にs.source_files = "Classes", "Classes/**/*.{h,m}"と指定するのではなく、 s.subspec 'jsonUtil' do |ss| 〜 endと指定しましょう。

さて、これで全ての対応が完了しました。
実際に、CocoaPodsでインストールしてみましょう!
思い描いた通りに自作ライブラリが追加されているはずです。
といったところで今日はここまで。

Comments