はじめに
個人アプリにライセンス表示をしたく、有名なライセンス表示ライブラリを使ってみました。
手順
導入手順はGithubのページに丁寧に書かれておりますが、それでも少し詰まったのでメモしておきます。
1. LicensePlistのインストール
-
Recommendedの
CocoaPods
を使う場合
Podfile
にpod 'LicensePlist'
を追加して、pod install
する -
Also Recommendedの
Homebrew
を使う場合
ターミナルにて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
というディレクトリが自動生成されました。
3. SettingBundleの生成
Setting Bunndle
そのものがなかったので、アプリのディレクトリ直下に新規追加します。
そこにcom.mono0926.LicensePlist
とcom.mono0926.LicensePlist.plist
を自動生成されたディレクトリから移動させます。
4. Root.plistの修正
なので、修正します
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>
5. ビルド時にLicensePlist
の更新がされるようにする
Build Phases
のNew 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の情報が最新に更新されました👏
感想
Homebrew
を使うとLicesePlist
自体のライセンス表示がされないので、CocoaPods
で入れて生成した方が良いのだろうなと思いました。
参考