Swift で iOS アプリのバージョンとビルド番号を取得する方法

iOS のアプリ内で、アプリのバージョンやビルド番号を表示したい時ありますよね。

ここでは、Swift で iOS アプリのバージョンとビルド番号を取得する方法をご説明します。

Xcode で iOS アプリのバージョンとビルド番号を確認する

まずは、Xcode で iOS アプリのバージョンとビルド番号を確認しておきます。

Xcode で iOS アプリのプロジェクトを開きます。

左側のナビゲーターエリアの上のプロジェクト名をクリックし、TARGETS のプロジェクト名をクリックし、General タブをクリックします。

Identity セクションの Bundle Identifier の下にアプリの Version と Build が表示されていて、ここで変更が可能です。

Xcode で iOS アプリアイコンを設定する方法 1


今回は、新規 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 と表示されます。

Xcode で iOS アプリアイコンを設定する方法 2


二つ目の方法は Bundle クラスの main バンドルの infoDictionary プロパティを使って取得する方法です。

Bundle.main.infoDictionary?[key] や Bundle.main.infoDictionary![key] のようにして、information property list の値をキーを指定して取得することができます。

Version と Build 番号を取得するキーは、先ほどと同じ CFBundleShortVersionStringCFBundleVersion です。


先ほどの 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 と表示されます。

Xcode で iOS アプリアイコンを設定する方法 3


今回はバンドルの iOS アプリの Version と Build 番号を取得しましたが、同様の方法で、Info.plist に設定した値を、キーを指定して取得することも可能です。

以上、Swift で iOS アプリのバージョンとビルド番号を取得する方法をご説明しました。

© 2024 iOS 開発入門