# iOS 版本更新接入指南 **模块**:`XuqmUpdate` · **功能**:App 版本检查、App Store 跳转 --- ## 1. 添加依赖 在 `Package.swift` 中按需引入: ```swift .target( name: "MyApp", dependencies: [ .product(name: "XuqmUpdate", package: "XuqmGroup-iOSSDK"), ] ) ``` --- ## 2. 检查更新 ```swift import XuqmUpdate let appInfo = try await UpdateSDK.shared.checkAppUpdate(currentVersionCode: 1) if let info = appInfo, info.needsUpdate { print("发现新版本: \(info.versionName ?? "")") print("更新日志: \(info.changeLog ?? "")") if info.forceUpdate == true { // 强制更新 showForceUpdateAlert(info) } else { // 可选更新 showOptionalUpdateAlert(info) } } ``` --- ## 3. 跳转 App Store ```swift if let url = appInfo?.appStoreUrl { UpdateSDK.shared.openAppStore(url: url) } ``` `openAppStore` 会调用 `UIApplication.shared.open()` 打开 App Store 页面,引导用户前往商店更新。 --- ## 4. 强制更新处理 当服务端返回 `forceUpdate = true` 时,建议业务层: 1. 弹出 `UIAlertController`,设置 `isUserInteractionEnabled = false` 禁止关闭 2. 只允许用户点击「前往更新」 3. 调用 `UpdateSDK.shared.openAppStore(url:)` 跳转 App Store ```swift func showForceUpdateAlert(_ info: AppUpdateInfo) { let alert = UIAlertController( title: "发现重要更新", message: "当前版本已不可用,请升级至 \(info.versionName ?? "最新版")", preferredStyle: .alert ) alert.addAction(UIAlertAction(title: "前往更新", style: .default) { _ in if let url = info.appStoreUrl ?? info.downloadUrl { UpdateSDK.shared.openAppStore(url: url) } }) present(alert, animated: true) } ``` --- ## 5. 多模块统一登录 Update 模块与 IM、Push 模块共享同一套登录态: ```swift // 初始化 XuqmSDK.shared.initialize(config: config) // 登录(业务登录成功后调用一次) try await XuqmSDK.shared.login(userId: "user_001", userSig: userSig) // UpdateSDK 在 checkAppUpdate 时自动携带 appKey,无需额外登录操作 ``` --- ## 6. 一键打包上传 SDK 提供 Fastlane `xuqm_release` lane,可一键完成 Archive、导出并上传至 XuqmGroup 版本管理服务: ```bash fastlane xuqm_release ``` `Fastfile` 示例配置: ```ruby lane :xuqm_release do gym( scheme: "MyApp", export_method: "app-store", output_directory: "build" ) xuqm_upload( ipa_path: "build/MyApp.ipa", release_notes: File.read("CHANGELOG.md"), force_update: false ) end ``` 任务执行流程: 1. 执行 `gym` 构建 Release IPA 2. 自动提取版本号、build 号、更新日志 3. 上传 IPA 到 XuqmGroup 后台 4. 返回发布结果