2
1

More than 1 year has passed since last update.

【iOS】ライセンス表示ライブラリ「LicensePlist」を使ってみた

Posted at

はじめに

個人アプリにライセンス表示をしたく、有名なライセンス表示ライブラリを使ってみました。

手順

導入手順はGithubのページに丁寧に書かれておりますが、それでも少し詰まったのでメモしておきます。

1. LicensePlistのインストール
  • RecommendedCocoaPodsを使う場合
    Podfilepod 'LicensePlist'を追加して、pod installする

  • Also RecommendedHomebrewを使う場合
    ターミナルにてbrew install mono0926/license-plist/license-plistする
    だけですが、
    私の場合(環境の問題で)は、Error: Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)!と怒られたので、
    arch -arm64 brew install mono0926/license-plist/license-plist
    arch -arm64を付けて無事インストールできました。

2. LicensePlistの生成

今回対象のアプリはCocoaPodsでライブラリ管理を行なっており、ディレクトリにPodsがあるので
対象アプリに移動してlicense-plistを実行するだけで
com.mono0926.LicensePlist.Outputというディレクトリが自動生成されました。
スクリーンショット 2022-02-08 19.35.35.png

3. SettingBundleの生成

Setting Bunndleそのものがなかったので、アプリのディレクトリ直下に新規追加します。
スクリーンショット 2022-02-07 20.47.59.png

新規追加後はこのような状態ですが、
スクリーンショット 2022-02-07 20.48.21.png

そこにcom.mono0926.LicensePlistcom.mono0926.LicensePlist.plistを自動生成されたディレクトリから移動させます。
スクリーンショット 2022-02-07 20.50.57.png

4. Root.plistの修正

デフォルトはこんな感じ
スクリーンショット 2022-02-08 19.37.01.png
そのまま表示するとこんな感じ
スクリーンショット 2022-02-07 20.53.57.png

なので、修正します
Root.plistを右クリックでOpen As->Source Codeで表示して👇のように修正します

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

Property Listで表示するとこんな感じに
スクリーンショット 2022-02-08 20.27.27.png

これで想定通りライセンスが表示されました👏
スクリーンショット 2022-02-08 20.29.08.png

5. ビルド時にLicensePlistの更新がされるようにする

Build PhasesNew Run Script Phaseを追加して下記内容(LicensPlist参照)をコピペする

  • CocoaPodsを使った場合
if [ $CONFIGURATION = "Debug" ]; then
${PODS_ROOT}/LicensePlist/license-plist --output-path $PRODUCT_NAME/Settings.bundle --github-token YOUR_GITHUB_TOKEN
fi
  • Homebrewを使った場合
if [ $CONFIGURATION = "Debug" ]; then
/usr/local/bin/license-plist --output-path $PRODUCT_NAME/Settings.bundle --github-token YOUR_GITHUB_TOKEN
fi

しかし、私の場合は、/usr/local/binではなく/opt/homebrew/binでしたが。

それと、Setting.bundleが直下にない場合は、$PRODUCT_NAME/〇〇/Settings.bundleとすること。

これで準備完了。

ビルドしたらLicensePlistの情報が最新に更新されました👏
スクリーンショット 2022-02-09 19.14.20.png

感想

Homebrewを使うとLicesePlist自体のライセンス表示がされないので、CocoaPodsで入れて生成した方が良いのだろうなと思いました。

参考

2
1
0

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
2
1