技術ブログ

プログラミング、IT関連の記事中心

LicensePlistライブラリを使用したライセンスの表示【Swift】

■はじめに

サードパーティ製のライブラリを使用する際に、MITライセンスや、Apatchライセンスなどのライセンスのルールで、ライセンスの内容を表示することが必要になります。

アプリ内にライセンス表示画面を出すことでも対応できますが、それだと保守が面倒だし、抜けが出る可能性があります。

そこで、「LicensePlist」という素晴らしいライブラリを見つけましたので、ここではこのライブラリを使用してライセンス表示を行います。

※このライブラリでは、iPhoneの「設定」アプリ内の下の方に自分のアプリが表示されるので、その中に「License」が選択できるようになります。

■手順

プロジェクトのPodfileに以下を記載する。

pod 'LicensePlist'

その後、以下のコマンドをターミナルで実行し、ライブラリをインストールする。

pod install

Xcodeでプロジェクトを開き、「Build Phases」の「+」から「New Run Script Phase」を選択し、以下のShellを記載する。

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

プロジェクトディレクトリを右クリックし、「New File...」を選択する。

「Settings Bundle」を選択し、作成する。

※ファイル名は「Settings」のままにしておくこと。

生成された「Settings.bundle」内の「en.lproj」ディレクトリを削除する。

「Settings.bundle」内の「Root.plist」を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>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」配下に以下が追加される。

ここまで、できたら実機ビルドを行い、アプリが起動した後に「設定」アプリの下部にある自分のアプリを開くと「Licenses」の項目が追加されている。

この「Licenses」を選択すると、利用しているライブラリの一覧が表示される。

※以下は、ライブラリはLicensePlistしか使用していない場合です。

※他のライブラリを使用した場合も自動で設定してくれるようです。

上記の対象のライブラリを選択したら、以下のようにそのライブラリのライセンスが表示されます。