[ iOS / Swift ] 如何從 Info.plist 裡取得 App 專案的名稱與版本號

我們在寫專案時,有時候會需要使用到專案的名稱與版本號資訊,要取得這些資訊就需要從 Info.plist 來取得。


實作:

1. 使用 Bundle.main 呼叫 infoDictionary 方法,就可以取得 Info.plist 裡的資訊。
2. 由於回傳的是字典 [String : Any]?,需要填寫 Key 值,才有辦法取得對應的資訊,然後再透過 as? 將資訊轉型成字串。


override func viewDidLoad() {

    super.viewDidLoad()

        

    if let infoDictionary = Bundle.main.infoDictionary {

            

        let bundleName = infoDictionary["CFBundleName"] as? String

        let bundleVersionString = infoDictionary["CFBundleShortVersionString"] as? String

        let bundleVersion = infoDictionary["CFBundleVersion"] as? String

            

        print(bundleName ?? "")           // Test 測試專用

        print(bundleVersionString ?? ""// 2.0.1

        print(bundleVersion ?? "")        // 1

    }

}



3. 要如何取得 Info Key 值:原本的 Info.plist 裡,顯示的並不是我們需要使用的 Key 值,我們只要在頁面按右鍵,選單選擇 Raw Keys & Values 後就能看到真正的 Key 值,我們只要複製貼上就可以了。



4.  也可以使用 iOS 提供的公開變數,但是並不是所有的變數都有,像是 BundleVersionString 就沒有提供變數可以直接使用。



override func viewDidLoad() {

    super.viewDidLoad()

    

    if let infoDictionary = Bundle.main.infoDictionary {

        

        let bundleName = infoDictionary[kCFBundleNameKey as String] as? String

        let bundleVersionString = infoDictionary["CFBundleShortVersionString"] as? String

        let bundleVersion = infoDictionary[kCFBundleVersionKey as String] as? String

        

        print(bundleName ?? "")           // Test 測試專用

        print(bundleVersionString ?? ""// 2.0.1

        print(bundleVersion ?? "")        // 1

    }

}




留言