Khi build ứng dụng iOS, mặc định có version 1.0 và build 0. Mỗi lần upload lên App Store cần tăng version. Version và build number lưu trong Info.plist. Đôi khi cần truy xuất giá trị này trong code để hiển thị (Settings, About, log...).
Lấy Version (CFBundleShortVersionString)
let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? "Unknown"
Lấy Build Number (CFBundleVersion)
let build = Bundle.main.object(forInfoDictionaryKey: kCFBundleVersionKey as String) as? String ?? "Unknown"
Ví dụ hoàn chỉnh
override func viewDidLoad() {
super.viewDidLoad()
let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? "N/A"
let build = Bundle.main.object(forInfoDictionaryKey: kCFBundleVersionKey as String) as? String ?? "N/A"
print("Version: \(version), Build: \(build)")
// Ví dụ: Version: 2.3.1, Build: 45
// Hiển thị trên UI
versionLabel.text = "v\(version) (\(build))"
}
Kết quả

Phân biệt Version vs Build
| Version (CFBundleShortVersionString) | Build (CFBundleVersion) | |
|---|---|---|
| Ý nghĩa | Phiên bản công khai (Marketing) | Bản build nội bộ (Testing/CI) |
| Định dạng | Major.Minor.Patch (1.2.3) | Số nguyên tăng dần (1, 2, 45...) |
| Thay đổi khi | Release tính năng mới, fix bug lớn | Mỗi lần build/archive |
| App Store | Hiển thị cho user | Không hiển thị, dùng cho TestFlight |
Tự động tăng Build Number (CI/CD)
Dùng script trong Build Phases hoặc fastlane increment_build_number để tự động tăng build mỗi lần archive.