Swift で iOS アプリのバージョンとビルド番号を取得する方法
iOS のアプリ内で、アプリのバージョンやビルド番号を表示したい時ありますよね。
ここでは、Swift で iOS アプリのバージョンとビルド番号を取得する方法をご説明します。
Xcode で iOS アプリのバージョンとビルド番号を確認する
まずは、Xcode で iOS アプリのバージョンとビルド番号を確認しておきます。
Xcode で iOS アプリのプロジェクトを開きます。
左側のナビゲーターエリアの上のプロジェクト名をクリックし、TARGETS のプロジェクト名をクリックし、General タブをクリックします。
Identity セクションの Bundle Identifier の下にアプリの Version と Build が表示されていて、ここで変更が可能です。
今回は、新規 iOS アプリを作成し、テストのために、Version を 1.2、Build を 3 に変更しました。
Swift で iOS アプリのバージョンとビルド番号を取得する
Swift で iOS アプリのバージョンとビルド番号を取得する方法を二つご紹介します。
ひとつ目は Bundle クラスの main バンドルの object(forInfoDictionaryKey key: String) メソッドを使って取得する方法です。
このメソッドを使うと、information property list の値をキーを指定して取得することができます。
Version のキーは CFBundleShortVersionString で、Build のキーは CFBundleVersion です。
それでは実際に、object(forInfoDictionaryKey key: String) メソッドを使って、iOS アプリのバージョンとビルド番号を取得して print してみます。
ViewController.swift に次のコードを追加します。
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let version = getInfoDictionary("CFBundleShortVersionString")
let build = getInfoDictionary("CFBundleVersion")
print("Version: \(version), Build: \(build)")
}
func getInfoDictionary (_ key: String) -> String {
if let version = Bundle.main.object(forInfoDictionaryKey: key) as? String {
return version
} else {
return ""
}
}
}
getInfoDictionary() 関数は、キーを渡して、information property list の値を返す関数です。
14 行目が Bundle クラスの main バンドルの object(forInfoDictionaryKey key: String) メソッドを使って、値を取得している箇所です。
object(forInfoDictionaryKey key: String) メソッドの返り値は Any? 型なので、文字列に変換しています。
結果が nil じゃない時は取得した値を、nil の時は空の文字列を return しています。
8 行目で、getInfoDictionary() に CFBundleShortVersionString を渡して version の値を取得しています。
9 行目で、getInfoDictionary() に CFBundleVersion を渡して build の値を取得しています。
10 行目で取得した version と build の値を print しています。
これをシミュレーターを指定して実行すると output 画面に Version: 1.2, Build: 3 と表示されます。
二つ目の方法は Bundle クラスの main バンドルの infoDictionary プロパティを使って取得する方法です。
Bundle.main.infoDictionary?[key] や Bundle.main.infoDictionary![key] のようにして、information property list の値をキーを指定して取得することができます。
Version と Build 番号を取得するキーは、先ほどと同じ CFBundleShortVersionString と CFBundleVersion です。
先ほどの ViewController.swift のコードの 14 行目を次のように変更します。
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let version = getInfoDictionary("CFBundleShortVersionString")
let build = getInfoDictionary("CFBundleVersion")
print("Version: \(version), Build: \(build)")
}
func getInfoDictionary (_ key: String) -> String {
if let version = Bundle.main.infoDictionary?[key] as? String {
return version
} else {
return ""
}
}
}
14 行目で Bundle クラスの main バンドルの infoDictionary プロパティで、information property list の値を取得しています。
これをシミュレーターを指定して実行すると、先ほどと同様に output 画面に Version: 1.2, Build: 3 と表示されます。
今回はバンドルの iOS アプリの Version と Build 番号を取得しましたが、同様の方法で、Info.plist に設定した値を、キーを指定して取得することも可能です。
以上、Swift で iOS アプリのバージョンとビルド番号を取得する方法をご説明しました。