LoginSignup
33
25

More than 5 years have passed since last update.

Carthageでinstallしたライブラリのライセンス一覧をplistで生成する

Posted at

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
Simulator Screen Shot 2016.10.31 22.10.30.png Simulator Screen Shot 2016.10.31 22.10.32.png
33
25
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
25