なんだこれは

はてなダイアリーから移転しました。

その次のcocoapods

  • iOSアプリの開発で CocoaPodを使ったライブラリのライセンスの謝辞を自動生成する。

環境は、Mac Elcapitan 10.11.5 です。
この記事は、はじめてのcocoapodsの続きです。

iOSアプリでは、Settings.bundleを作成して、iOS本体の設定にさまざまなメニューが追加できるらしい。これを利用して、cocoapodsでインストールしたライブラリのライセンス表記を自動的に追記してみよう。

bundleって何?

bundleというのはフォルダの一種である一定の構造をもっており、
Finder上でファイルのようにもフォルダのようにもあつかる、らしい。

Xcodeで開く

はじめてのcocoapodsで作成したプロジェクトを開く

open CocoaPodsSample.xcworkspace/

Podfileのターゲットがそのまま反映されていて、CocoaPodsSampleはこんな風になる。(Project Navigater)


Settings.bundleを作成

XcodeのCocoaPodsSample内の、Supporting Filesの中の項目を右クリック(またはcontrol+クリック)して、メニューからNew Fileを選択する。

選択すると、Choose a template for your new fileという画面が表示される。

Setting.bundleを選択し、Nextを押下する。

そのまま、Createを押下する。

プロジェクトの内容(Project Navigater)で Settings.bundleの下にRoot.plistが
作成されているはず。このファイルを以下のものといれかえる。

TitleキーのStringは表示用のタイトルなので、License や謝辞といったようにお好きな文字列に変更する。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>StringsTable</key>
    <string>Root</string>
    <key>PreferenceSpecifiers</key>
    <array>
        <dict>
            <key>Type</key>
            <string>PSChildPaneSpecifier</string>
            <key>Title</key>
            <string>Acknowledgements</string>
            <key>File</key>
            <string>Acknowledgements</string>
        </dict>
    </array>
</dict>
</plist>

Podfileの変更

Settings.bundleに指定がおわったあとは、Podfileに以下の文言を末尾に追加して、
cocoapodsにインストールまたはアップデートするごとにライセンス表記を生成させるだけ。

そもそもPodfileはrubyスクリプト(らしい)ので、さまざまに拡張できるとのこと。

post_install do | installer |
  require 'fileutils'
  FileUtils.cp_r('Pods/Target Support Files/Pods/Pods-Acknowledgements.plist', 'Resources/Settings.bundle/Acknowledgements.plist', :remove_destination => true)
end