iOS开发如何实现版本更新

iOS版本更新有两种,第一种是把版本号放在我们自己的服务器上,通过接口对比实现,这种一般用在企业开发者账号,也就是不用上架appstore上面的比较多。还有一种就是上架到appstore上面,我们可以通过连接获取到。第一种比较简单,就不说了 下面我直接把第二种写一下

1》

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //ios应用版本更新
    [self VersionButton];
}

2》

-(void)VersionButton
{
    NSString *string =[NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://itunes.apple.com/lookup?id=1097022833"] encoding:NSUTF8StringEncoding error:nil];
    if (string!=nil && [string length]>0 && [string rangeOfString:@"version"].length==7) {
        [self checkAppUpdate:string];
    }
}

这里说一下http://itunes.apple.com/lookup?id=1097022833这个连接,这个连接前面的是固定的,后面的id=多少就是我们在itunes上创建的app的appleid,也就是itunes上面的应用id,只要你创建app便会给你分配一个appleid,这个跟上不上架没关系。如果我们的程序在app上已经上架,那么我们可以打印一下string看一下里面的内容,其中就包括version,如果我们是第一次上架,那么这个string就是

{
 "resultCount":0,
 "results": []
}

这时候,就不会走if里面的方法了。
应用程序id查询,如图:

这里写图片描述

3》

-(void)checkAppUpdate:(NSString *)appInfo
{
    //获取当前版本
    NSString *version=[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
    //下面两句为截取appinfo内容中(也就是我们在appstore正在上架的程序信息)的version,根据version的长度不动,截取的长度也不同,如果又的应用版本已板鞋1.0,3.2 这种短的格式,那么请自行调整截取长度以获得version
    NSString *appInfo1=[appInfo substringFromIndex:[appInfo rangeOfString:@"\"version\":"].location+10];
    appInfo1=[[appInfo1 substringToIndex:[appInfo1 rangeOfString:@","].location] stringByReplacingOccurrencesOfString:@"\"" withString:@""];
    //判断
    if(![appInfo1 isEqualToString:version]){
        HSLog(@"新版本:%@,当前版本%@",appInfo1,version);
        UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"更新提示" message:[NSString stringWithFormat:@"电丁丁集团版新版本 %@ 已发布,建议更新为最新版本获得更高体验!",appInfo1] delegate:self cancelButtonTitle:@"知道了" otherButtonTitles:@"前去更新", nil];
        alert.tag=20;
        [alert show];

    }else{
        HSLog(@"已经是最新版本");
    }

}

4》

-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    if (alertView.tag==20) {
        if (buttonIndex==1) {
            NSURL *url=[NSURL URLWithString:@"itms-apps://itunes.apple.com/cn/app/dian-ding-ding-ji-tuan-ban/id1097022833?mt=8"];
            [[UIApplication sharedApplication]openURL:url];
        }
    }
}    

这里面的url,我再解释一下,前面的是固定的 ,这dian-ding-ding-ji-tuan-ban/id1097022833一串是不固定的,id就是上面的应用程序id,这个dian-ding-ding-ji-tuan-ban是我的app的应用名称的拼音,你们改成自己的。上面这个方法会自动帮我们打开appstore 并且找到这个上架的app,如果第一次上架,那么 已经说了,在开始的时候,就不会走1中的那个if里买的。上面那个连接地址固定部分,我是在mac电脑上 iTunes找个应用,点详情里边,点应用,选择复制链接出来查看,试了很多个应用找出的规律,短名字基本上都是这样,长名字还有英文应用名字的我没试,你们可以自己也试试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值