hatuyukiです。Qiitaには初投稿になります。
よろしくお願いします。
ライセンス管理
自分は現在、アプリを開発する中で、cocoapodsとcarthageを併用しているのですが、オープンソースライセンスの管理が面倒になってきます。
cocoapodsの場合はこちらの方法でpods install
する際に自動でplistをコピーし、それをアプリや設定内で表示させることができるのですが、このやり方ではcarthageのライセンスは取得できません。
しかしそもそも carthage update
した段階でCheckoutsディレクトリの中にソースコード一式チェックアウトしているのだから、そこからライセンス情報を引っ張ってくれば良いのではと思い当たりました。
generate_carthage_license_list
CarthageのCheckoutsからライセンスのplistを生成するgenerate_carthage_license_list.rbというものを作成しました。これを使ってplistを作成し、ライセンスを管理していきます。
使用方法
generate_carthage_license_listをプロジェクトファイルと同じディレクトリに配置します。generate_carthage_license_listを開くと、ファイルの頭に
output_path = "CarthageLicenseList.plist"
carthage_path = "Carthage/Checkouts/*"
と書かれている箇所があるので、プロジェクトにあわせて変更します。
carthage_path
がCarthageのcheckoutsへのパス、output_path
がplistの出力先のパスになります。
最後に以下のコマンドで実行すれば終わりです
ruby generate_carthage_license_list.rb
実行後にPods-acknowledgements.plistと同じような構成のplistが出力されます。
使用例
CarthageLicenseSampleにsetting.bundleへplistを出力し、ライセンスを表示するサンプルを作ってあります。
単純なplistなので、setting.bundleではなくアプリ内で表示することも可能です。
settings | Licenses |
---|---|