iOS添加自动更新的代码

- (void)versionUpdate{

    //获得当前发布的版本
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        //耗时的操作--获取某个应用在AppStore上的信息,更改id就行
        __weak LoginViewController *weakSelf = self;
        NSString *string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://itunes.apple.com/cn/lookup?id=1108288793"] encoding:NSUTF8StringEncoding error:nil];
        NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
        NSString *version = [[[dic objectForKey:@"results"]firstObject]objectForKey:@"version"];

        NSString *updateInfo = [[[dic objectForKey:@"results"]firstObject]objectForKey:@"releaseNotes"];
        //NSString *updateURL = [[[dic valueForKey:@"results"] firstObject] objectForKey:@""];

        //获得当前版本
        NSString *currentVersion = [[[NSBundle mainBundle]infoDictionary]objectForKey:@"CFBundleShortVersionString"];

        dispatch_async(dispatch_get_main_queue(), ^{
            //更新界面
            if ( version &&![version isEqualToString:currentVersion]) {
                //有新版本
                NSString *message = [NSString stringWithFormat:@"有新版本发布啦!\n%@",updateInfo];
                UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"温馨提示" message:message preferredStyle:UIAlertControllerStyleAlert];
                UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"忽略" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

                }];
                UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"前往更新" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                    NSString *url = @"https://itunes.apple.com/cn/app/rich-products/id1108288793?mt=8&uo=4";

                    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
                }];

                [alertController addAction:action1];
                [alertController addAction:action2];

                [weakSelf presentViewController:alertController animated:YES completion:nil];
            }else{
                //已是最高版本
                NSLog(@"已是最高版本");
            }

        });

    });

}

记得http://itunes.apple.com/cn/lookup?id=1108288793,这中间的这个CN不能掉了,不然返回的JSON数组为空。

时间: 2024-10-10 23:02:46

iOS添加自动更新的代码的相关文章

通过Git WebHooks+脚本实现自动更新发布代码之shell脚本

前文讲述了<通过Git WebHooks+脚本实现自动更新发布代码>,里面提供了一种自动更新发布代码的脚本编写思路.本文的脚本与前文中的思路不太不同.本脚本以capistrano中的一些思想和理念为依据,用简单好理解的shell脚本实现capistrano原本实现的自动化部署部分. 脚本的一些特点和功能: 解决脚本的符号链接问题,准确获取脚本工作目录(从tomcat脚本中学到): 颜色显示,不同级别的信息用不同的颜色显示(共两种方案,前一种从一位不知名的国外工程师处得到,后一种从lnmp1.2

通过Git WebHooks+脚本实现自动更新发布代码之Shell脚本(二)

依据前文<通过Git WebHooks+脚本实现自动更新发布代码>的解决方案编写的shell脚本,此脚本专门用于更新补丁文件,例如对项目中的文件实现增(add).删(remove).改(update),并且执行相关的命令,如清除缓存.重启服务等. 此Shell脚本目前设计成在本地执行,目前不适合分布式执行的情况.也就是说,此脚本最好与项目在同一个机器上,这个缺陷已经标注在脚本中了,参见脚本中的多个TODO. 脚本完成的工作: 检查配置文件合规性 备份与恢复 增删改文件 执行命令 失败回滚 除上

通过Git WebHooks+脚本实现自动更新发布代码

需求: 写一个自动化部署脚本,能根据git push动作自动更新发布代码(补丁文件(或更新文件,以下简称补丁)) 解决方案: 通过git webhooks.python脚本.Linux Shell脚本完成,所有动作均自动完成,人工部分仅限于发布补丁文件之前 git webhooks实现触发执行脚本 python脚本用于接收git webhooks的post数据并根据这些数据判断是否执行shell脚本 Linux Shell脚本用于实现部署.备份.回滚等操作 具体步骤(方案实现): 实现原理: 用

Cordova webapp实战开发:(6)如何写一个iOS下自动更新的插件?

上一篇我们学习了如何写一个Andorid下自动更新的插件,我想还有一部分看本系列blog的开发人员希望学习在iOS下如何做插件的吧,那么今天你就可以来看看这篇文字了. 本次练习你能学到的 学习如何获取iOS当前版本号 学习iOS下插件类的编写 学习iOS下插件的配置 学习iOS下插件的调用 主要内容 APP中[检查更新]显示当前版本号 插件类的编写 在上一篇介绍Andorid插件时我们贴出了很多源码,这里也直接贴出代码,首先是iOS下插件的代码. 我们在Plugins下新建两个文件,一个头文件

iOS 版本自动更新

AppDelegate.h - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    [self  editionUpdate]; } //版本自动更新 -(void)editionUpdate{    NSString * [email protected]"192.168.......";//获取后台的接口    

git自动更新网站代码

1.实现过程在linux上安装git服务.创建源版本库.从源版本库克隆得到网站目录,然后利用git中的hooks机制,在git push推送代码到源版本库的时候,触发编写的shell脚本,更新网站目录下的代码. 2.安装git服务 [[email protected] ~]# cd /usr/local/src[[email protected] src]# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.15.2.

利用crontab自动更新SVN代码

shell.sh#!/bin/sh source ~/.bash_profile LANG=en_US.UTF-8 cd /opt/web/hzcms/ svn up >> /opt/web/svn.log contab -e */1 * * * * /opt/web/hzcms_shell.sh > /opt/web/svn.log

关于cocos2dx客户端程序的自动更新解决方案

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 随着手机游戏的不断发展,游戏包也越来越大,手机网络游戏已经超过100M了,对于玩家来说,如果每次更新都要重新下载,那简直是灾难.而且如果上IOS平台,每次重新发包都要审核,劳神费力.所以当前的主流手游都开始提供自动更新的功能,在不改动C++代码的前提下,使用lua或者js进行业务逻辑开发,然后自动更新脚本和资源,方便玩家也方便研发者. 以前做端游的时候,自动更新是一个大工程,不仅要能更新资源和脚本,还要

友盟更新 自动更新替换方案

自动更新替换方案 这个服务因为目前面临N多非技术的挑战,导致我们很难再维护好这个服务: iOS的自动更新已经被苹果官方严格禁止了,苹果官方也数次联系友盟,要求我们及早把iOS的更新服务停掉: Android面临的问题更多,比如应用市场(集成友盟自动更新插件会导致市场审核被拒).部分系统厂商(部分厂商系统上,增量更新功能不能正常工作)以及部分运营商的拦截(比如有开发者反馈我们的下载CDN链接在某些地区的运营商会被禁止访问). 4.1日起,我们已经停止向新用户透出该服务:今年10.15以后,老用户也