概要
スマホカードリストというアプリを開発しています。病院の診察券やクレジットカードの券面を写真に撮ってアプリに保存しておき、カードの情報をいつでも確認できるように作ったアプリです。
アプリに不具合が起きた時にスクリーンショットを送ってもらったりするのですが、どのバージョンで起きた不具合なのかはっきりしないこともあるので、「アプリの起動画面にバージョン番号が表示されてたらいいなあ」と思いました。
調べたら、実現方法があったので、ここにまとめておこうと思います。
実現方法
Launch Screen.storyboardの準備
Swiftで作る場合においてはアプリの起動画面はLaunch Screen.storyboardというファイルで実装します。
このLaunch Screen.storyboardに、バージョン番号表示用のLabelを貼り付けます。制約などはいい感じに設定してください。
貼り付けたら、Xcode右側のIdentity Inspector paneからDocument -> Labelをみつけます。見つかったら、Document -> Labelの欄に APP_VERSION と入力します。
バージョン番号、ビルド番号を設定させるためのスクリプト
先ほど貼り付けた、APP_VERSIONというラベルに、バージョン番号、ビルド番号を埋め込むためのスクリプトを作成します。
Xcodeの該当のプロジェクトのBuild Phasesを表示し、+を押して、New Run Script Phaseを選びます。
そして、Shellの中に以下をコピペします。
# ON/OFF Script Toggle (script ON with #, script OFF without #) #exit 0 # App vesion / Build version constants sourceFilePath="$PROJECT_DIR/$PROJECT_NAME/Launch Screen.storyboard" versionNumber="$MARKETING_VERSION" buildNumber="$CURRENT_PROJECT_VERSION" # Output version & build numbers into a label on LaunchScreen.storyboard sed -i .bak -e "/userLabel=\"APP_VERSION\"/s/text=\"[^\"]*\"/text=\"Version $versionNumber($buildNumber)\"/" "$sourceFilePath"
sourceFilePahtには、Launch Screen.storyboardへのファイルパスを設定してください。
そして、このスクリプトの行をマウスでつかんで、Copy Bundle Resourcesよりも前にドラッグしてください。こうすることで、上記スクリプトでAPP_VERSIONがバージョン番号などに置換されたLaunch Screen.storyboardがビルドに組み込まれることになります。
完成
このように起動画面の右上にバージョン番号を表示させることができました!