iOSライセンス一覧を生成するツールLicensePlistが便利


1.はじめに

App Storeにある有名アプリでもいくつか導入されているようだったので、試しに入れてみました。日本の方が作成したようでReadMeも読みやすいです。
iOSライセンス一覧を生成するツール LicensePlist
2017年に日本の方がリリースしたライブラリ(CLIツール)です。

現在個人アプリを開発中なのですが、以前は、ライセンス表記するために設定ライセンス一覧ライセンス表示画面を作ってplistから取得してゴニョゴニョ表示していました。
新しいライブラリを入れる度にplist更新しないといけないので、それが日に日に面倒でした。
プロジェクトによりますが、個人開発でなくてもそのような状況は、良くあるのではないでしょうか。
自分でscript書いてビルド時にライブラリのplistから摘出してってやっても良いと思いますが、それすらしたくない!って方にはいいかもしれません。結局ライブラリでやっていることはそれと同じようなことだと思いますが。
導入までの備忘録も兼ねて投稿します。

これを導入すると端末の設定アプリの該当のアプリの欄にLisenceというセルが追加されて、ライセンスたちはここに明記されるようになります。

つまり、アプリ内部でライセンス表記画面を作成する必要もなくなります。
Settings Bundleを使用して端末の設定アプリにアプリ情報を表示したり、アプリの設定を変更できる機能を実装する仕組みは以前からありましたが、無知でしたでの僕は驚きました泣。

2.メリット、デメリット

メリット

アプリ内部で専用画面を作る必要がない
ライブラリを導入する度に修正する手間がなくなる

デメリット

手動でライブラリを取り込んだ場合は別途YMLの設定が必要
アプリ内部にライセンス表記がないのでユーザーが気づきにくい
 (ライセンスを見る人なんて開発者くらいか)

手動でライブラリを取り込んだ場合というのは、例えばソースを直接入れたりGit Submodule使っている場合ですね。少々面倒。

3.導入

Homebrew、mintでの導入も記載ありましたが、僕の場合CocoaPodsを使用していたので今回はCocoaPodsで。
はい、導入していきます。

pod 'LicensePlist'
pod update

あとはXcodeのBuild PhasesのRun Scriptに以下を追加。

if [ $CONFIGURATION = "Debug" ]; then
${PODS_ROOT}/LicensePlist/license-plist --output-path $PRODUCT_NAME/Settings.bundle --github-token YOUR_GITHUB_TOKEN
fi

こんな感じです。

そしてプロジェクトをビルドすると先ほど設定したRun ScriptでCLIが実行され、ターミナルが自動起動されます
そのままではまだ、設定アプリ上には表示されていません。
プロジェクトディレクトリ内のRootにSetting.bundleが生成されているのでこれをプロジェクトRootに追加します。

その後アプリをビルドランすると設定アプリ>アプリ名>Licenseのセルが追加されています。
中を見るとこんな感じです。



はい出来ました。

4.最後に

ReadMeや本人の記事を見れば普通に導入できますが、分かりやすく解説してみました。
ライブラリを使う場合は、多くの場合でライセンス表記が必要なので、このようなツールはとても便利だと思います。
みなさんもぜひ使ってみてください。

その他参考にした記事やサイト
iPhoneの設定アプリにライブラリのライセンスを表示するようにする
LicensePlist github

LicensePlist というiOSアプリ利用ライブラリのライセンス一覧を生成するツールを作りました
↑これは本人の記事です。