カテゴリー: iOS

[iOS]ライセンスを簡単に生成してくれるLicensePlistを使って見た

はじめに

こんにちは、nukkyです。
アプリ開発には付き物のライセンス表記、こちらを自動生成してくれる「LicensePlist」を使って見たので紹介させていただきます。

作者様ページ

https://github.com/mono0926/LicensePlist

前提条件

Xcode 9.1
iOS 11 Simulator
Swift 4.0

 

インストール

インストールはターミナルで以下のコマンド一発でOKです!

$ brew install mono0926/license-plist/license-plist

 

早速使ってみよう

今回はアプリ内ではなくOSの設定画面に表示されるように作成していきたいと思います。

Settings.bundleの準備

OSの設定画面に表示するようにSettings.bundleを準備します。
今回サンプルでは「ExampleProject」を作成しこちらで進めていきます。
Xcode上でExampleProject直下にNew FileからSettings bundleを選択し、名前もそのままSettingsとします。

すると作成したSettings.bundle内に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>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>

今回はライセンス表記のみの表示としています。

LicensePlistの作成

それではLicensePlistを出力したいと思います。
依存ライブラリ形式は以下に対応してくれています。
・CocoaPods
・Carthage
・YAML設定ファイルによる指定
CocoaPodsやCarthage経由で入れていないライブラリでもYAMLを作成することでライセンス表記を追加することができます。
(YAML設定ファイルの書き方についてはこちら)
ターミナルでExampleProjectのトップディレクトリに移動し、以下のコマンドを叩いてください。

license-plist --output-path ExampleProject/Settings.bundle

Xcode上でSettings.bundle内にcom.mono0926.LicensePlist関係のファイルが作成されれば準備完了です。
アプリをインストールし、設定画面を見にいくと以下のようになっているはずです。

自動更新の設定

XcodeのRun ScriptのBuild — Pre-actionsに以下を指定することで、依存ライブラリが変わると検知してライセンスファイルを自動更新してくれるようになります。

if [ $CONFIGURATION = "Debug" ]; then
cd $SRCROOT
/usr/local/bin/license-plist --output-path $PRODUCT_NAME/Settings.bundle
fi

 

 

さいごに

LicensePlistとても便利です!
今回は設定に表示させましたがplistとして出力できるのでアプリ内に組み込むのも簡単にできると思います。

nukky

シェア
執筆者:
nukky
タグ: iOSXcode

最近の投稿

フロントエンドで動画デコレーション&レンダリング

はじめに 今回は、以下のように…

2週間 前

Goのクエリビルダー goqu を使ってみる

はじめに 最近携わっているとあ…

4週間 前

【Xcode15】プライバシーマニフェスト対応に備えて

はじめに こんにちは、suzu…

2か月 前

FSMを使った状態管理をGoで実装する

はじめに 一般的なアプリケーシ…

3か月 前