同步操作将从 兰德网络O2OA平台软件/O2OA 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
//// O2 App 版本管理// O2VersionManager.swift// O2Platform//// Created by FancyLou on 2019年11月15日.// Copyright © 2019 zoneland. All rights reserved.//import UIKitimport Alamofireimport CocoaLumberjackimport SwiftyJSONimport ObjectMapperimport Promisesclass O2VersionManager {static let shared: O2VersionManager = {return O2VersionManager()}()private init() {}//检查版本func checkAppUpdate(call:@escaping (_ versionInfo: O2VersionInfoModel?, _ error :String?) -> Void) {if let infoPath = Bundle.main.path(forResource: "Info", ofType: "plist"), let dic = NSDictionary(contentsOfFile: infoPath) {if let versionUrl = dic["o2 app version url"] as? String {all(self.loadLastAppVersionInfo(url: versionUrl), self.appBuild()).then { (results) inlet ios = results.0let appBuild = results.1let onlineIosBuild = Int(string: ios.buildNo ?? "0") ?? 0let thisAppBuild = Int(string: appBuild) ?? 0if onlineIosBuild > thisAppBuild {call(ios, nil)}else {call(nil, "没有新版本,不需要更新!")}}.catch { (err) inDDLogError(err.localizedDescription)call(nil, err.localizedDescription)}}else {DDLogError("没有配置版本更新地址,无法检查更新!")call(nil, "没有配置版本更新地址,无法检查更新!")}}else {DDLogError("没有Info.plist文件。。。。。是吗???")call(nil, "没有配置版本更新地址,无法检查更新!")}}func updateAppVersion(_ downloadUrl: String?) {if let obj = downloadUrl {DDLogDebug("更新app地址:\(obj)")if let appURL = URL(string: obj) {if UIApplication.shared.canOpenURL(appURL) {UIApplication.shared.openURL(appURL)}else {DDLogError("地址不对,无法升级!")}}}else {DDLogError("download地址为空!")}}private func loadLastAppVersionInfo(url: String) -> Promise<O2VersionInfoModel> {return Promise { fulfill, reject in//获取版本信息if let timeUrl = AppDelegate.o2Collect.generateTimestampWithURL(url) {DDLogDebug("url with time : \(timeUrl)")Alamofire.request(timeUrl).responseJSON {response inswitch response.result {case .success(let val):let ios = JSON(val)["ios"]if let iosModel = Mapper<O2VersionInfoModel>().map(JSONString:ios.description) {let build = iosModel.buildNolet version = iosModel.versionNamelet url = iosModel.downloadUrlDDLogDebug("ios version:\(version ?? "") , build:\(build ?? ""), url:\(url ?? "")")fulfill(iosModel)}else {DDLogError("解析版本信息对象异常")reject(OOAppError.jsonMapping(message: "解析版本信息对象异常", statusCode: 1024, data: nil))}case .failure(let err):DDLogError(err.localizedDescription)reject(err)}}}}}private func appBuild() -> Promise<String> {return Promise { fulfill, reject inif let info = Bundle.main.infoDictionary {let buildId = info["CFBundleVersion"] as? Stringlet version = info["CFBundleShortVersionString"] as? StringDDLogDebug("build: \(buildId ?? "") , version:\(version ?? "")")fulfill(buildId ?? "")}else {DDLogError("没有系统 info !!!!!!")reject(OOAppError.common(type: "system", message: "没有系统 info !", statusCode: 1024))}}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。