ばろぐ・ほいダウン

2010年Nゲージにより鉄道事業を開始。2011年Gゲージに参入することで事業拡大。常に夢と目標と野望を持ち活動していく。

MENU

XcodeでiOSアプリのバージョン情報を表示させる方法

f:id:yotubarail:20200702142141j:plain

どうも筆者です。
タイトルの通りです。
上の画像のように端末の設定からバージョンの確認ができるようにしたいと思います。

Settings.bundleの設定

f:id:yotubarail:20200702141555p:plain

プロジェクト内にSettings.bundleを作ります。



f:id:yotubarail:20200702142300p:plain

Settings.bundle内はこのようになっています。
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>Title</key>
                <string>概要</string>
                <key>Type</key>
                <string>PSGroupSpecifier</string>
                <key>FooterText</key>
                <string>Copyright © 2020 Yotubarail</string>
            </dict>
            <dict>
                <key>Type</key>
                <string>PSTitleValueSpecifier</string>
                <key>DefaultValue</key>
                <string>1.0.0</string>
                <key>Title</key>
                <string>バージョン</string>
                <key>Key</key>
                <string>sbVersion</string>
            </dict>
        </array>
        <key>StringsTable</key>
        <string>Root</string>
    </dict>
</plist>

Copyrightの部分は各自で変えてください。
概要やバージョンと書かれた部分の言葉も自由に変えられます。

Run Scriptを追加

f:id:yotubarail:20200702143428p:plain

Xcode内のBuild Phasesに新しくRun Scriptを追加してください。
左上の+ボタンから「New Run Script Phase」で追加できます。

追加したら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"

ビルド

これで準備は完了です。
ビルドしてみましょう。

f:id:yotubarail:20200702142141j:plain

設定の中にプロジェクトで作ったアプリが入っていて、開くと画像のようになっていれば成功です。

これの応用でCocoa Podsなどで入れた外部ライブラリのライセンスを一覧で表示することもできますが、自分で作っていくよりLicensePlistを使用するのが楽です。

github.com

medium.com