はじめに
ライセンス表示を手動で実装するのが手間なので、導入することにしました。
「LicensePlist」とは?
CarthageとCocoaPods、SwiftPMで管理しているライブラリのライセンス表示を自動的に生成するツールです。
設定ファイルを用意することで、任意のライブラリに対しても生成できるようです。
環境
- OS:macOS Mojave 10.14.6
- Swift:5.1.3
- Xcode:11.3.1 (11C504)
- LicensePlist:2.12.0
セットアップ
LicensePlistのインストール
Mintからインストールします。
+ mono0926/LicensePlist@2.12.0
$ mint bootstrap
その他の方法でインストールするには、公式ドキュメントをご参照ください。
https://github.com/mono0926/LicensePlist#installation
Settings Bundleの追加
プロジェクトに Settings.bundle
がない場合、こちらの記事を参考に追加してください。
記事の内容と異なり、製品ターゲットのフォルダ内に作成していいと思います。
Settings Bundleの編集
まず、こちらの記事を参考に、デフォルトで配置されている内容を削除します。
Key | Type | Value |
---|---|---|
Type | String | Child Pane |
Title | String | Licenses |
Filename | String | com.mono0926.LicensePlist |
Title
の Value
は任意の値でOKです。
デフォルトだと3つ目は Filename
でなく Key
となっているので、忘れずに変更します。
変更が漏れると設定画面にライセンスが表示されません。
操作方法
ライセンスファイルの生成
Cartfile
ファイルや Pods
フォルダがあるフォルダで license-plist
コマンドを実行します。
$ mint run LicensePlist license-plist --output-path ${PRODUCT_NAME}/Settings.bundle
以下の3ファイルが Settings.bundle
内に生成されます。
XcodeGenを使っている場合、プロジェクトファイルを再生成した方がいいと思います。
私はMakefileを作成し、 make generate-license
を実行すると「ライセンスファイルの生成→プロジェクトファイルの生成→CocoaPods用ワークスペースの生成」を一括で行うようにしています。
PRODUCT_NAME := CurrencyConversion
.PHONY: generate-licenses
generate-licenses:
mint run LicensePlist license-plist --output-path ${PRODUCT_NAME}/Settings.bundle
$(MAKE) generate-xcodeproj
.PHONY: generate-xcodeproj
generate-xcodeproj:
mint run xcodegen xcodegen generate
$(MAKE) install-cocoapods
.PHONY: install-cocoapods
install-cocoapods:
bundle exec pod install
ライセンス表示までの画面遷移
ライセンスが表示されているか確認します。
設定画面にライセンスが表示されない場合、 Root.plist
の指定に誤りがある可能性があるので、公式のサンプルを参考に見直してください。
https://github.com/mono0926/LicensePlist/blob/master/Settings.bundle.zip
バージョン管理から無視する(任意)
生成されたライセンスファイルをバージョン管理の対象外にします。
Gitを使っている場合、以下を「.gitignore」に追加するのみでOKです。
+ com.mono0926.LicensePlist/
+ com.mono0926.LicensePlist.latest_result.txt
+ com.mono0926.LicensePlist.plist
こちらの設定は任意です。
バージョン管理するのもありだと思います。
おまけ:ライブラリのバージョン番号を表示する
--add-version-numbers
オプションを付けることで、ライブラリのバージョン番号を表示できます。
https://github.com/mono0926/LicensePlist#--add-version-numbers
おわりに
これでライセンス表示を実装する手間が省けます!
ただし、ライブラリの使用前にライセンスを確認するのは忘れないようにしましょう。