tomoyaonishiのブログ

iOSのことを中心に・・・その他もあるよ!

ライセンス情報を自動で設定に吐き出してくれるLicensePlistがすごい

f:id:tomoyaonishi:20180919133846p:plain:h500

LicensePlist

LicensePlistというものを見つけました。CocoaPods、Carthage両対応でSettings.bundleを吐き出してくれて設定画面の自分のアプリ欄にライセンス表記をまとめて自動で表示できるという素晴らしいツールです。

この手のツールはどれもいまいちでCocoaPodsにしか対応していなかったり、Carthageにしか対応していなかったりして面倒でした。

これはありがたい!!

以下の記事をみながらやればすんありイケルと思います。

HomebrewでMacコマンドラインツールとして実行もできますが、CocoaPodsをすでに使っている人はCocoaPodsに追加する方法が良いと思います。環境移行しやすいですしね。

LicensePlist というiOSアプリ利用ライブラリのライセンス一覧を生成するツールを作りました

自分はCococaPodsでやったので、少し補足いれつつ書いておきます。

CocoaPodsにLicensePlist自体を追加

pod 'LicensePlist'
$ pod install

Run Scriptにスクリプトを追加

if [ $CONFIGURATION = "Debug" ]; then
    ${PODS_ROOT}/LicensePlist/license-plist --output-path $PRODUCT_NAME/Settings.bundle
fi

Settings.bundleを追加

iOSの設定アプリの自分のアプリの領域に情報を追加するにはSettings.bundleというものが必要です。これを追加します。

  • New File...からSettings.bundleを選択して追加する

f:id:tomoyaonishi:20180919132740p:plain

  • 余計なものを消して、Root.plistを書き換えてライセンス欄を追加する。

f:id:tomoyaonishi:20180919133003p:plain

Root.plist

<?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>PreferenceSpecifiers</key>
        <array>
            <dict>
                <key>Title</key>
                <string>Licenses</string>
                <key>Type</key>
                <string>PSChildPaneSpecifier</string>
                <key>File</key>
                <string>com.mono0926.LicensePlist</string>
            </dict>
        </array>
        <key>StringsTable</key>
        <string>Root</string>
    </dict>
</plist>

ビルド

ビルドするとSettings.bundle内に以下のファイルが追加されるはずです。追加されない場合は「Add files to Settings.bundle...」で追加してください。

f:id:tomoyaonishi:20180919133617p:plain

設定アプリで確認

f:id:tomoyaonishi:20180919133120p:plain:h500

たったこれだけで面倒な作業から解放されます。作者さんありがとうございます 😍