hyoromoのブログ

最近はVRSNS向けに作ったものについて書いています

iOSアプリのバージョン&ライセンス情報表記をテンプレート化

f:id:hyoromo:20140117214707j:plain
面倒くさい作業にはテンプレが欲しいものです。今回はiOSアプリを開発する上で避けては通れない「外部ライブラリのライセンス表記」とオマケで「アプリのバージョン表記」のテンプレートを紹介します。
なお、Xcode 5.0.2 での実施内容です。

設定アプリ上にアプリ専用の項目を設ける

f:id:hyoromo:20140117214709p:plain
設定アプリ上にアプリ専用の項目を設ける事が可能です。方法は以下の様なファイル構成の「Settings.bundle」バンドルファイルをXcodeプロジェクト上に追加します。Settings.bundleのテンプレートは以下のリンク先から「iOS_Settings_Template.zip」をDLし、解凍する事で入手出来ます。
https://skydrive.live.com/redir?resid=2CD69F09DD371380%211904

これだけで設定アプリのトップ画面下に項目が追加されます。ただ今のままだと現在のバージョンが表示されず、ライセンス情報もアプリに合っていません。もう少し作業が必要となります。

アプリ自体のライセンス表記を記述

Xcode上から、Root.plistファイルの「Preference Items/Item0/FooterText/Value」に記述されている「Copyright © hyoromo All Rights Reserved.」の内容を変更しておいてください。不要な場合はItem0は削除してください。

外部ライブラリのライセンス情報を記述

f:id:hyoromo:20140117214711p:plain
Xcode上から、Licenses.plistファイルの PreferenceSpecifiers に1ライセンス毎にItemを追加して記述を行います。Titleにライブラリ名FooterTextにライセンス情報を記述していってください。
テンプレートは「SVProgressHUD」ライブラリを例として書いています。アプリで未使用な場合は削除してください。

アプリのバージョンを記述

アプリをリリースする度にバージョン変更すると修正漏れが発生する可能性があります。
そこで Run Script を使ってビルド毎にバージョン情報更新を行わせます。

Run Script 項目の追加

f:id:hyoromo:20140117214708p:plain
Xcodeの画面上部にあるメニュー上から「Editer > Add Build Phase > Add Run Script Build Phase」を行います。
これをする事で Run Script 項目が追加されます。

Run Script 追加

f:id:hyoromo:20140117214712p:plain
プロジェクト選択 > TARGETS[プロジェクト名] > Build Phases」を選択します。
Run Script項目があるのでスクリプト記述場所へ以下のスクリプトを追記。

APP_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $PRODUCT_SETTINGS_PATH)
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:1:DefaultValue ${APP_VERSION}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Settings.bundle/Root.plist"

参照

これでバージョン&ライセンス情報の書き方は終わりです。
この方法は以下のサイトを参考にして書いています。参考にしているというレベルじゃなくだいたい同じなのですが、今回の趣旨はテンプレート化したかった事です。