はじめに
CocoaPods でライセンス表記を自動生成しようと思うと、探せばいくつも記事が出てきます。
これが Carthage になるとどういう訳かほぼ皆無に等しい。
それでも探してみると CarthageLicenseScript という Swift で書かれたスクリプトを見つけたので共有したいと思います。
使い方
使い方は非常にシンプル。
- スクリプトを保存
- terminal で
$ ./PATH_TO_YOUR_SCRIPT/fetch_licenses.swift Cartfile.resolved OUTPUT_DIR
と書いて実行
-
./PATH_TO_YOUR_SCRIPT/fetch_licenses.swift
はスクリプトへのパス -
Cartfile.resolved
は Carthage のライセンス表記を出力したいプロジェクトの Cartfile.resolved へのパス -
OUTPUT_DIR
は Licenses.plist を出力したいディレクトリへのパス
これだけで Licenses.plist が任意のディレクトリへ出力されます。
Licenses.plist は [[String: String]] になっているので、
let plistPath = Bundle.main.path(forResource: "../Licenses", ofType:"plist")
let licensesArray = NSArray(contentsOfFile: plistPath!)! as! [[String : String]]
というようにして読み込めば、
このようにアプリ内で表示するのも簡単です。
実行例
注意点
I won't recommend running it as a build phase, but rather checking the generated .plist into your project.
ということなので、
- ビルドと同時にスクリプトを走らせない
- 生成された .plist を確認する
の2点は忘れないようにしましょう。特に .plist は text に改行が含まれているので、必ず確認したほうがいいと思います。またライブラリの変更は時々あると思いますので、.plist のバージョン管理を忘れないようにしましょう。
最後に
アプリをリリースするにあたって Qiita の記事にはとても助けられました。
自分もなにか書いて残していくことで、誰かの助けになればと思い初投稿しました。