はじめに
こんにちは、nukkyです。
アプリ開発には付き物のライセンス表記、こちらを自動生成してくれる「LicensePlist」を使って見たので紹介させていただきます。
作者様ページ
https://github.com/mono0926/LicensePlist
前提条件
Xcode 9.1
iOS 11 Simulator
Swift 4.0
インストール
インストールはターミナルで以下のコマンド一発でOKです!
1 | $ brew install mono0926/license-plist/license-plist |
早速使ってみよう
今回はアプリ内ではなくOSの設定画面に表示されるように作成していきたいと思います。
Settings.bundleの準備
OSの設定画面に表示するようにSettings.bundleを準備します。
今回サンプルでは「ExampleProject」を作成しこちらで進めていきます。
Xcode上でExampleProject直下にNew FileからSettings bundleを選択し、名前もそのままSettingsとします。
すると作成したSettings.bundle内にRoot.plistがあるのでこちらを以下のように編集します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?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>Licenses</string> <key>File</key> <string>com.mono0926.LicensePlist</string> </dict> </array> </dict> </plist> |
今回はライセンス表記のみの表示としています。
LicensePlistの作成
それではLicensePlistを出力したいと思います。
依存ライブラリ形式は以下に対応してくれています。
・CocoaPods
・Carthage
・YAML設定ファイルによる指定
CocoaPodsやCarthage経由で入れていないライブラリでもYAMLを作成することでライセンス表記を追加することができます。
(YAML設定ファイルの書き方についてはこちら)
ターミナルでExampleProjectのトップディレクトリに移動し、以下のコマンドを叩いてください。
1 | license-plist --output-path ExampleProject/Settings.bundle |
Xcode上でSettings.bundle内にcom.mono0926.LicensePlist関係のファイルが作成されれば準備完了です。
アプリをインストールし、設定画面を見にいくと以下のようになっているはずです。
自動更新の設定
XcodeのRun ScriptのBuild — Pre-actionsに以下を指定することで、依存ライブラリが変わると検知してライセンスファイルを自動更新してくれるようになります。
1 2 3 4 | if [ $CONFIGURATION = "Debug" ]; then cd $SRCROOT /usr/local/bin/license-plist --output-path $PRODUCT_NAME/Settings.bundle fi |
さいごに
LicensePlistとても便利です!
今回は設定に表示させましたがplistとして出力できるのでアプリ内に組み込むのも簡単にできると思います。