iOS 检查更新升级版 版本信息类(swift)的

我们这里描述的不是svn 或者是git 的使用
本地建立一个版本管理类对于版本的更新和版本相关内容的使用会变的很方便。也是 我们代码大神话的必要之路 。
当然现在商店版的项目不需要做检查更新等功能(appstore有新版本会提示),有些项目还是会有版本更新功能的
废话不多说直接上代码。

<pre>
import UIKit
class VersionX: NSObject {
static let current = VersionX()
//软件下载地址
var appurl = ""
//当前版本
var versionX = ""
//是否强制升级 //1强制升级 2不强制 3无需升级
var isforce = ""
var isAppstore = false //true 是生产环境 false 测试版/企业版
func save(){
NSUserDefaults.standardUserDefaults().setValue(appurl, forKey: "APPURL")
NSUserDefaults.standardUserDefaults().setValue(version, forKey: "VERSION")
NSUserDefaults.standardUserDefaults().setValue(isforce, forKey: "FORCE")
NSUserDefaults.standardUserDefaults().setValue(isforce, forKey: "AppSTROE")
}

static func getCurrent() -> VersionX{
    if let value = NSUserDefaults.standardUserDefaults().stringForKey("APPURL") {
        current.appurl = value
    }else{
        current.appurl = ""
    }
    
    
    if let value = NSUserDefaults.standardUserDefaults().stringForKey("VERSION") {
        current.versionX = value
    }else{
        current.versionX = "0.0.1"
    }
  
    if let value = NSUserDefaults.standardUserDefaults().stringForKey("FORCE") {
        current.isforce = value
    }else{
        current.isforce = ""
    }
    
    current.isAppstore =   NSUserDefaults.standardUserDefaults().boolForKey("AppSTROE")

    return current
}

}
</pre>

该类的使用就简单来。企业版项目要求从服务器对比版本提示更新
<pre>
func goversion(){

    //检查版本更新
    if VersionX.current.isAppstore == false{
    NSUserDefaults.standardUserDefaults().setBool(true, forKey: "SETINGUPFATE")
    let  appdelegate = UIApplication.sharedApplication().delegate as! AppDelegate
     appdelegate.upDataVisions()
    }

}

</pre>

代理中的代码
<pre>
func upDataVisions(){
// 2 ios 1 andorid
//现在的版本号
var newVer = VersionX.current.versionX as String
if newVer == ""{
let newVer = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String

    }
    let   URL =  Const.URL_UPDATA + "?appver=" + newVer + "&osType=2"
    
    Http.manager().GET(URL , parameters : nil,
        success: { (req:AFHTTPRequestOperation!, ret:AnyObject!) -> Void in
            
                let tmpdata = ret["data"] as! [String : AnyObject]
                
                if let value = tmpdata["apkurl"] as? String {
                     VersionX.current.appurl = value
                }
            
               if let value = tmpdata["isforce"] as? String {
                   VersionX.current.isforce = value
                }

       let FORCE = String (tmpdata["isforce"] as! NSNumber)
            //1强制升级  0不强制   3无需升级
           if (FORCE == "1") {
            if let value = tmpdata["ver"]  {
               //对比版本是否需要升级
                let  value = value.stringByReplacingOccurrencesOfString(".", withString: "")
                let  newVer = newVer.stringByReplacingOccurrencesOfString(".", withString: "")
                if  Int(newVer)   < Int(value) {
                    let alert = UIAlertView(title: "提示", message: "有新的版本可以升级现在,是否立刻升级?", delegate: self, cancelButtonTitle: nil, otherButtonTitles: "是")
                    alert.tag = 300
                    alert.show()
                }  else  {
                   let alert = UIAlertView(title: "提示", message: "已是最新版本", delegate: nil, cancelButtonTitle:nil, otherButtonTitles: "是")
                   alert.show()
                }
            }
            if let value = tmpdata["ver"] as? String {
                VersionX.current.versionX = value
            }
            }else if (FORCE == "0"){
            
                if let value = tmpdata["ver"] {
                    
                    //对比版本是否需要升级
                    let  value = value.stringByReplacingOccurrencesOfString(".", withString: "")
                    
                   let  newVer = newVer.stringByReplacingOccurrencesOfString(".", withString: "")
                    
                    if  Int(newVer)   < Int(value) {
                    
                        let alert = UIAlertView(title: "提示", message: "有新的版本可以升级现在,是否立刻升级?", delegate: self, cancelButtonTitle: "否", otherButtonTitles: "是")
                        alert.tag = 200
                        alert.show()
                       
                   }  else  {
                      let alert = UIAlertView(title: "提示", message: "已是最新版本", delegate: nil, cancelButtonTitle:nil, otherButtonTitles: "是")
                        alert.show()
                   }
                }
                if let value = tmpdata["ver"] as? String {
                    VersionX.current.versionX = value
                }
            }else {
               let tempversion = NSUserDefaults.standardUserDefaults().boolForKey("SETINGUPFATE")
               if  tempversion == true {
                NSUserDefaults.standardUserDefaults().setBool(false, forKey: "SETINGUPFATE")
                let alert = UIAlertView(title: "提示", message: "已是最新版本", delegate: nil, cancelButtonTitle:nil, otherButtonTitles: "是")
                alert.show()
               }
            }
            //保存信息
            let   ver = VersionX()
            ver.appurl = tmpdata["apkurl"] as! String
            ver.versionX = tmpdata["ver"] as! String
            ver.isforce = String(tmpdata["isforce"] as! NSNumber)
            ver.save()         
}, failure: { (req:AFHTTPRequestOperation!, err:NSError!) -> Void in
            Toast.show("获取信息失败", ti: 1)
    })
}

</pre>

我们项目时企业版可以跳到safri去更新。如果是商店版时隐藏更新。
<pre>
//检查更新功能是否需要隐藏
if VersionX.current.isAppstore == false{
upDataVisions()
}
</pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容