- 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