You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何适配自动递增的Build Number实现TestFlight版本弹窗逻辑?

适配自动递增Build Number的版本弹窗逻辑方案

因为你需要保留版本号不变、仅用自动递增的Build Number来区分构建版本,只需将原有的版本号检查逻辑替换为Build Number的检查即可,具体步骤如下:

1. 修改版本信息获取函数

替换原有的getCurrentAppVersion,改为获取Build Number(对应Info.plist中的CFBundleVersion字段),同时优化解包逻辑避免崩溃:

func getCurrentBuildNumber() -> String {
    guard let buildNumber = Bundle.main.infoDictionary?["CFBundleVersion"] as? String else {
        return "1" // 兜底默认值,防止因字段缺失崩溃
    }
    return buildNumber
}

2. 调整启动时的检查逻辑

将UserDefaults中存储的"上次版本号"改为"上次Build Number",并在启动时对比当前Build Number与存储值,判断是否需要显示弹窗:

func checkBuildSpecificPopup() {
    let currentBuild = getCurrentBuildNumber()
    let savedBuild = UserDefaults.standard.string(forKey: "LastSeenBuildNumber") ?? "0"
    
    // 优先转成Int比较(避免字符串比较的坑,比如"10"字符串会被认为小于"2")
    if let currentInt = Int(currentBuild), let savedInt = Int(savedBuild) {
        if currentInt > savedInt {
            showTargetPopup(forBuild: currentBuild)
            UserDefaults.standard.set(currentBuild, forKey: "LastSeenBuildNumber")
        }
    } else {
        // 若Build Number含非数字字符,直接用字符串对比
        if currentBuild != savedBuild {
            showTargetPopup(forBuild: currentBuild)
            UserDefaults.standard.set(currentBuild, forKey: "LastSeenBuildNumber")
        }
    }
}

// 根据Build Number显示对应弹窗
func showTargetPopup(forBuild buildNumber: String) {
    switch buildNumber {
    case "5":
        // 0.1(5)版本的弹窗逻辑
        print("显示Build 5专属更新弹窗")
    case "6":
        print("显示Build 6专属更新弹窗")
    // 其他Build的弹窗逻辑依次添加
    default:
        break
    }
}

3. 可选:兼容版本号+Build Number的组合检查

如果后续需要同时区分版本号和同版本下的不同Build,可以改用组合标识作为检查依据,兼顾两种场景:

func getCurrentVersionBuildCombo() -> String {
    let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "0.0"
    let build = Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "1"
    return "\(version)-\(build)"
}

之后将检查逻辑中的currentBuild和savedBuild替换为这个组合值即可。

内容的提问来源于stack exchange,提问作者erotsppa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:22:52