LicensePlistとは
『license-plistというCLIツールを実行すると、そのプロジェクトで依存しているライブラリを収集して、iOS設定アプリ上に載せられる形式のplist群を生成してくれます』(開発者記事抜粋)
リリースしたアプリにオープンソースのライセンスを表示させる実装方法です。
アプリの設定画面で企業で開発したなどで見ることができますが、個人アプリでも仕様したものは記載した方が良いです。
その際に必要なXcodeでの実装方法となります。
UIKitでもSwiftUIでも実装方法は一緒です。
アプリの設定画面を開くと『Licenses』と表示されるようになってタップすると使っているライブラリを全て表示してくれます。
アプリの設定画面に表示されるようになります。
開発者の方の記事内容
LicensePlist というiOSアプリ利用ライブラリのライセンス一覧を生成するツールを作りました
Qiita記事
GitHub
使用するためにのライブラリはCocoaPodsを使っています。
ここではCocoaPodsを使用した実装方法で記載します。
CocoaPodsの使い方はこちらに記載してあります。
詳しいやり方はこちらを参考にして下さい。
CocoaPodsインストールしており、かつPodfileを作っている前提での方法です。 Podfileを作るなどの方法はこちらの記事を参考にして下さい。
Podfileに書き込む
『Podfile』があります。
『Podfile』をテキストエディットかターミナルのVimコマンドで開いて以下を追記して下さい。
pod 'LicensePlist'
コピペできます。
pod install
そしてファイルのディレクトリでコマンド使用してインストールします。
白い『xcworkspace』ファイルに書き込んでいきます。
Xcodeのメインファイルを選択する
ショートカットキーの『⌘+N』でファイルの新規作成画面を開きます。
『Filter』に『Setting』と入力して下さい。
Settings
コピペできます。
『Settings Bundle』が表示されたら『Next』をクリックして下さい。
ファイル名はそのまま『Settings』で「Create」をクリックして下さい。
最初に作られている『en.lproj』と『Root』を削除します。
削除する時は『⌘ command』を押しながらクリックすると2つ選択して「Delete」をクリックして下さい。
自分の設定でデスクトップのXcodeのファイルをiCloudに自動バックアップ設定をしてると削除出来ないポップが表示されます。
iCloudの設定を外すためにデスクトップ以外にファイルを移してからDeleteすると削除できるようになります。
次にもう一度メインファイルを選択します。
『⌘+N』で新規作成ファイル画面を再度開きます。
Property
コピペできます。
『Property List』が出たら「Next」をクリックして下さい。
Root
ファイル名を変更したら「Create」をクリックして下さい。
Rootができたら『Root』→『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>StringsTable</key>
<string>Root</string>
<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>
</dict>
</plist>
最初に入力されている内容は全て削除して下さい。
そして上記の内容をコピペします。
Root.plistに書き込んだら、RootをSettingsファイルの中に入れます。
カーソルで動かすと段落にプラスマークが表示されるので入れて下さい。
ちなみにファイル左の矢印が右を向いていて下にRootが表示されている時はファイル内に入ってないです。
次に『プロジェクトを選択』→『TARGETS』→『Build Phases』→『+』をクリックして下さい。
『New Run Script Phase』を選択して下さい。
if [ $CONFIGURATION = "Debug" ]; then
${PODS_ROOT}/LicensePlist/license-plist --output-path $PROJECT_NAME/Settings.bundle
fi
こちらを入力して下さい。
if [ $CONFIGURATION = "Debug" ]; then
cd $SRCROOT
/usr/local/bin/license-plist --output-path $PRODUCT_NAME/Settings.bundle
fi
自分の場合リリースしたアプリに最初のコードを入力してもエラーになってしまったので、こちらの『/usr/local/bin/』のパスが入っているコードを入力してビルドしたところ上手く出来ました。
pod update
そしてファイルのディレクトリでコマンド使用してアップデートします。
これで実装は終了です。
ビルドする
ビルドしてみて下さい。
何も書いてない状態だとエラー表示にはなるもののビルドは出来て設定画面にLicenseが表示されています。
参考
LicensePlist というiOSアプリ利用ライブラリのライセンス一覧を生成するツールを作りました
iOSアプリのライセンス一覧のplistを半自動生成して設定画面にキレイに表示するプログラムをGo言語で作った
LicensePlist GitHub
【Swift】LicensePlistの使い方