`

IOS判断app在appstore是否有可用的更新

    博客分类:
  • ios
 
阅读更多
iTunes可以提供app的版本信息,主要通过appid获取,如 http://itunes.apple.com/lookup?id=950918119,使用时只需要到iTunes查找自己的appid,修改成自己的appid即可

使用HTTP模式读取此链接可以获取app信息的json字符串

-(void)checkVersion
{
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:strURL]];//strURL为你的appid地址
    [request setRequestMethod:@"POST"];
    [request setDelegate:self];
    [request startAsynchronous];
}

-(void)requestFinished:(ASIHTTPRequest *)request
{
    NSString *recStr = [[NSString alloc] initWithData:request.responseData encoding:NSUTF8StringEncoding];
    recStr = [recStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];//返回的字符串有前面有很多换行符,需要去除一下
    NSDictionary *resultDic = [JSONHelper DeserializerDictionary:recStr];//jsonhelper是我封装的json解析类,你可以使用自己方式解析
    
    NSArray *infoArray = [resultDic objectForKey:@"results"];
    if (infoArray.count > 0) {
        
        NSDictionary* releaseInfo =[infoArray objectAtIndex:0];
        NSString* appStoreVersion = [releaseInfo objectForKey:@"version"];
        NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
        NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];
        
        NSArray *curVerArr = [currentVersion componentsSeparatedByString:@"."];
        NSArray *appstoreVerArr = [appStoreVersion componentsSeparatedByString:@"."];
        BOOL needUpdate = NO;
        //比较版本号大小
        int maxv = (int)MAX(curVerArr.count, appstoreVerArr.count);
        int cver = 0;
        int aver = 0;
        for (int i = 0; i < maxv; i++) {
            if (appstoreVerArr.count > i) {
                aver = [NSString stringWithFormat:@"%@",appstoreVerArr[i]].intValue;
            }
            else{
                aver = 0;
            }
            if (curVerArr.count > i) {
                cver = [NSString stringWithFormat:@"%@",curVerArr[i]].intValue;
            }
            else{
                cver = 0;
            }
            if (aver > cver) {
                needUpdate = YES;
                break;
            }
        }
        
        //如果有可用的更新
        if (needUpdate){
            
            trackViewURL = [[NSString alloc] initWithString:[releaseInfo objectForKey:@"trackViewUrl"]];//trackViewURL临时变量存储app下载地址,可以让app跳转到appstore
            UIAlertView* alertview =[[UIAlertView alloc] initWithTitle:@"版本升级" message:[NSString stringWithFormat:@"发现有新版本,是否升级?"] delegate:self cancelButtonTitle:@"暂不升级" otherButtonTitles:@"马上升级", nil];
            [alertview show];
            
        }else{
                            [self showAlertView:@"已经是最新版本了"];
                        }

        
    }
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 1){
        UIApplication *application = [UIApplication sharedApplication];
        [application openURL:[NSURL URLWithString:trackViewURL]];
    }
}
分享到:
评论

相关推荐

    苹果iOS app开发之更新升级app的办法.zip

    开发者应遵循App Store的规定,通过App Store本身的通知机制告知用户有可用的更新。 4. **APP版本更新的解决方法**: - **使用App Store Connect**:苹果推荐开发者通过App Store Connect管理应用的版本发布。当有...

    ios应用发布到appstore全部流程

    在iOS应用开发的世界里,将你的应用程序发布到App Store是至关重要的一步,让全球的iPhone和iPad用户能够发现并下载你的作品。以下是你需要了解的关于“ios应用发布到App Store的全部流程”的详细步骤: 1. **创建...

    iOS开发之一句代码检测App版本的更新

    同时,建议在检测到新版本时弹出友好的提示框,告知用户有可用更新,并询问他们是否愿意前往更新。 在实际应用中,还可以加入网络错误处理、版本号比较等功能,以确保在没有网络连接或查询失败时提供合适的反馈。总...

    iOSApp版本更新Demo

    首先,我们需要知道iOS中的版本更新通常有两种方式:通过App Store自动更新和在应用内部提示用户手动更新。自动更新是系统级别的设置,用户可以在设备的设置中开启或关闭。而应用内更新则需要开发者在代码中实现,...

    IOS APP发布流程

    - **可用日期**:设定应用在App Store中首次出现的日期。 - **价格级别**:选择应用程序的价格等级。 - **教育机构折扣**:决定是否向教育机构提供折扣。 6. **版本信息**:提供关于应用程序版本的详细描述。 - ...

    检测iOSApp版本更新

    在iOS应用开发中,定期检测并提示用户进行App版本更新是一项重要的功能,它能确保用户始终使用最新、最稳定、最安全的软件版本。本文将详细介绍如何在iOS中实现App版本检测以及设置强制更新策略。 首先,我们需要...

    ios-一句代码提示app更新.zip

    用户需要知道何时有新功能或修复已知问题的更新可用,而开发者则希望通过更新提高应用性能和稳定性。"ios-一句代码提示app更新.zip" 提供了一个简单易用的解决方案,通过一句代码即可实现检查并提示用户更新App的...

    checkVersion-iOS:用于检查 AppStore 上是否有新版本的代码

    用于检查 AppStore 上是否有新版本的代码。 此代码是基于代码的版本。 用法 您可以通过调用强制更新 CheckUpdate.shared.showUpdate(withConfirmation: false) 或者用户可以通过调用选择是现在更新还是稍后更新 ...

    IOS 非app应用检查更新Demo

    在iOS平台上,非App应用检查更新通常指的是那些不通过App Store进行分发的应用(例如企业内部应用或越狱应用)如何实现更新检测功能。这里我们参考提供的教程链接(已失效,但我们可以根据常规做法进行解释),来...

    苹果APPStore

    此外,还可以设置自动更新功能,让APP Store在新版本可用时自动更新应用。 ### APP Store的安全措施 为了保护用户的安全和隐私,苹果采取了一系列措施: 1. **应用审查**:每款应用程序在上线前都会经过严格的...

    location16.0 ios可用

    2. **App Store**:所有iOS应用都必须通过Apple的App Store进行分发,这确保了应用的质量和安全,但同时也限制了第三方应用的自由安装。 3. **Siri**:苹果的智能助手Siri,可以通过语音命令执行各种任务,包括查询...

    用ionic框架构建的混合app打包并发布到App Store详细步骤.docx

    在本文档中,我们将深入探讨如何使用 Ionic 框架构建的混合应用程序打包并发布到 Apple 的 App Store。首先,确保你已经准备了必要的环境,包括 MAC 电脑、iOS 系统、安装了 Node.js、Cordova 和 Ionic 的苹果开发者...

    ios应用升级 更新提示

    在iOS开发中,开发者可能会创建这样一个组件来跟踪当前应用的版本号,比较它与App Store中的最新版本,从而决定是否显示更新提示。此外,这个模块还可能负责处理更新过程,比如下载更新包、暂停或恢复下载、处理错误...

    iOS demo版本更新例子

    如果发现有新版本可用,它会触发后续的更新流程。 3. **用户界面**:AYCheckVersion提供了一个自定义的用户界面,可以方便地集成到你的应用中,以优雅地提醒用户更新应用。这个界面通常包含一个更新按钮,用户点击...

    5G05-App Annie:iOS APP商店10年数据纵览1

    1. **用户支出与App数量**:在iOS App Store中,近1万款App的用户支出超过了100万美元,总计超过1300亿美元。这体现了App Store内购和订阅服务的强劲增长。 2. **下载量与App总数**:从2010年至2018年5月,App ...

    ios-iOS版本更新.zip

    在iOS中,版本更新通常通过App Store Connect和应用的内部版本控制机制来管理。开发者首先在App Store Connect中上传新版本的二进制文件,并更新版本号和元数据,如描述、屏幕截图和新功能列表。一旦苹果审核通过,...

    苹果虚拟机安装方法之七App上架到苹果商店

    在苹果的生态系统中,将应用程序(App)发布到App Store是一项关键步骤,让全球的iPhone、iPad用户能够发现并下载你的应用。本篇文章将详细解析使用XE10开发的iOS App上架到App Store的流程,帮助开发者们顺利完成这...

    ios_app发布流程

    在iOS应用的发布流程中,开发者需要遵循一系列详细的步骤来确保其应用能够成功上传至App Store并进行审核。以下是详细的知识点,涵盖了从准备到最终上传的整个过程: 1. **访问iTunes Connect**: 开发者首先需要...

    版本检查更新(ios)

    在iOS开发中,版本检查更新是一项重要的功能,它允许应用自动检测是否有新的版本可用,并提示用户进行升级。这项功能不仅可以确保用户始终使用最新、最安全的软件版本,还能提高产品的用户体验,因为开发者可以及时...

    【APP分发系统二开版】首发一键免IOS免签封包分发平台源码 带绿标 最新版系统

    【APP分发系统二开版】是一个专为iOS和Android应用开发者设计的高效、便捷的分发工具,它提供了一键式iOS免签封包和分发服务,旨在解决传统App发布过程中的签名和审核难题。这个系统的核心功能主要包括: 1. **一键...

Global site tag (gtag.js) - Google Analytics