如何使用Swift獲取應用程式的版本號和build號?


您經常需要處理iOS應用程式的版本號和build號。這有助於您在伺服器端執行除錯操作。您可以檢查客戶端(iOS應用程式使用者)擁有哪個版本或build。基於此,您可以除錯來自客戶端的問題。

版本號和build號可能需要顯示給使用者,以驗證終端使用者當前執行的版本和build。

要在Swift中獲取應用程式版本號和build號,您可以使用`Bundle`類,它提供對應用程式包資訊的訪問。

以下是如何使用Swift獲取應用程式版本號和build號的示例:

語法

請注意,`object(forInfoDictionaryKey:)`方法返回一個可選值,因此您需要使用可選繫結或強制解包來獲取值。在上面的示例中,我使用了強制解包,這意味著如果應用程式的info字典中不存在這些值,程式碼將崩潰。您可能需要使用可選繫結來避免這種情況。

let buildNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String

基本上,我們從info.plist檔案中獲取build號,該檔案儲存在應用程式的主包中。有一個預定義的鍵`CFBundleVersion`用於訪問build版本。

演算法

  • 步驟1 - 訪問主包物件

  • 步驟2 - 從主包物件訪問info字典物件

  • 步驟3 - 從`CFBundleShortVersionString`鍵訪問build版本

示例

假設您正在Xcode上的實際專案中執行以下程式碼:

import Foundation
if let appVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String {
   print("App version: \(appVersion)")
} else {
   print("your platform does not support this feature.")
}
if let buildNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String {
   print("Build number: \(buildNumber)")
} else {
   print("your platform does not support this feature.")
}

輸出

your platform does not support this feature.
your platform does not support this feature.

輸出可能根據您機器上當前執行的Xcode專案而有所不同。

這將把應用程式版本號和build號列印到控制檯。應用程式版本通常是“X.X.X”形式的字串(例如“1.0.0”),而build號是一個表示應用程式build號的字串(例如“1”)。

示例

假設您正在線上編譯器上執行以下程式碼:

import Foundation
if let appVersion = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String {
   print("App version: \(appVersion)")
} else {
   print("your platform does not support this feature.")
}
if let buildNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String {
   print("Build number: \(buildNumber)")
} else {
   print("your platform does not support this feature.")
}

輸出

your platform does not support this feature.
your platform does not support this feature.

結論

在Swift中,很多時候您需要處理build和版本號來執行某些操作。訪問裝置中使用的應用程式的當前版本是一個簡單的過程。

更新於:2023年1月3日

6K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.