`

iOS程序自动检测更新的实现

ios 
阅读更多

之前项目需要用到app自动更新的功能,现将实现方案分享出来。
iOS程序自动提示更新的实现方案大致分为两种:
第一种,自己服务器提供一个接口,告知相关app的当前版本,是否需要更新,以及更新的地址等信息 。
第二种,就是利用苹果的appstore 提供的相关api进行查询更新。
 
由于此前没有找到iOS程序更新的方法,就用了第一种方式,但后来发现了一些问题,自己提供服务器,需要维护,程序提交更新后,由于苹果需要审核,中间会有时间差,这个时间不好把握。后台就找苹果的相关文档,终于找到了。
http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html
 
实现机制:
 
#define APP_URL @"http://itunes.apple.com/lookup?id=你程序的appId"
 
  ASIFormDataRequest *formRequst = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:APP_URL]];


请求网络数据,返回的大致数据如下,其他还有好多数据,我们把关键的给截取出来

{  
    resultCount = 1;  
    results =     (  
                {  
            artistId = 开发者 ID;  
            artistName = 开发者名称; 
            price = 0; 
            isGameCenterEnabled = 0;  
            kind = software;  
            languageCodesISO2A =             (  
                EN  
            ); 
            trackCensoredName = 审查名称;  
            trackContentRating = 评级;  
            trackId = 应用程序 ID;  
            trackName = 应用程序名称";  
            trackViewUrl = 应用程序介绍网址;  
            userRatingCount = 用户评级;  
            userRatingCountForCurrentVersion = 1;  
            version = 版本号;  
            wrapperType = software; 
      }  
    );  
}  

取得这些数据后关键的信息就是“ version”最新版本号和“ trackViewUrl”程序地址。然后与本地程序的版本比较即可。




上面的build 对应info.plist文件里的“Bundle version”字段,供程序调试用,即内部调试版本号,不是显示在appstore上面的

version 对应info.plist文件里的“Bundle versions string, short”字段,这才是真正的版本号,显示在appstore上的。由于之前学习的时候,上网查资料,有好多人老是把这两个给弄混了,我也纠结了一会,特此说明一下,以备记忆。

//获取appstore最新的版本号
NSString *newVersion = [rightDic objectForKey:@"version"];
    
//获取应用程序的地址        
 NSString *newURL = [rightDic objectForKey:@"trackViewUrl"];
         
//取得本地程序的版本号    
NSDictionary *localDic =[[NSBundle mainBundle] infoDictionary];
             NSString *localVersion =[localDic objectForKey:@"CFBundleShortVersionString"];
            
            CCLog(@"appStore 版本号为:%@ 本地版本号为:%@",newVersion,localVersion);

以下便是比较,这两个版本号是否一致来决定是否更新,简单,故略之。

 

原文转自:http://blog.csdn.net/davidsph/article/details/8931718

 

分享到:
评论

相关推荐

    iOS自动化测试自动允许弹框

    Appium是一款开源的自动化测试框架,它支持iOS、Android以及Web应用程序的自动化测试。Appium通过WebDriver协议与iOS的XCUITest框架交互,实现对iOS设备上的UI元素进行操作。 在iOS自动化测试中,当应用请求权限时...

    iOS 自动更新提醒

    在iOS系统中,自动更新提醒是一项非常实用的功能,它允许用户自动接收并安装软件更新,以保持设备上的应用程序和操作系统始终处于最新状态。这不仅有助于提高系统的安全性,还能确保用户享受到开发者提供的最新功能...

    ios-检测程序的版本的自动更新.zip

    在iOS应用开发中,确保应用程序能够自动检测并更新到最新版本是至关重要的。这不仅可以提供用户最佳的体验,也可以帮助开发者快速修复问题、发布新功能。"ios-检测程序的版本的自动更新.zip" 文件可能包含一个实现此...

    版本检查更新(ios)

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

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

    在苹果iOS平台上开发应用程序时,更新和升级是开发者必须面对的重要环节。这涉及到用户能够顺畅地获取新功能、修复和优化。以下是对标题和描述中所述知识点的详细说明: 1. **判断当前APP版本**: 要知道用户设备...

    ios-iOS版本更新.zip

    "ios-iOS版本更新.zip"这个压缩包很可能包含了与iOS应用版本更新相关的代码示例或文档资源,例如"VersionMassageUpdate"可能是其中的一个关键文件,可能涉及到如何在应用启动时检查并提示用户进行版本更新的实现。...

    基于mui的webapp版本更新方法 基于mui的版本更新方法 iOS热更新安卓版本

    本篇文章将详细探讨如何在基于Mui的Webapp中实现版本更新,包括iOS的热更新和Android的apk安装包下载。 1. **Mui框架基础** Mui是阿里巴巴淘票票团队开源的一款轻量级前端框架,它的设计目标是简化多端开发,支持...

    IOS版本提示更新

    进入“设置” > “通用” > “软件更新”,系统将自动连接到Apple服务器并检测最新版本。 3. **无线更新**:大多数iOS更新都可以通过Wi-Fi无线下载并安装。这个过程通常在设备充电并且连接到稳定的网络时进行,以...

    软件总是悄悄“被更新”iOS9自动更新软件怎么关闭?.pdf

    - 同样,关闭“更新”选项,可以防止已安装的应用程序自动更新到最新版本。 - 如果你不希望应用在使用蜂窝数据时自动更新(以防产生额外的数据费用),请关闭“使用蜂窝移动数据”。这将确保应用只在连接到Wi-Fi...

    iOS自动化测试的演示项目

    在iOS开发过程中,自动化测试是不可或缺的一环,它能够帮助开发者高效、准确地验证应用程序的功能,减少手动测试的时间和工作量。"iOS自动化测试的演示项目"是一个专门为Xcode 4.2设计的实例,旨在教会开发者如何在...

    iOS自动化测试工具ios_monkey

    `ios_monkey`的主要功能是模拟用户在iOS设备上进行随机操作,以此来检测应用程序的稳定性和功能完整性。它通过生成一系列的随机事件,如点击、滑动、输入等,来覆盖尽可能多的用户交互场景。这有助于开发者发现那些...

    iOSApp版本更新Demo

    这个“iOS App版本更新Demo”旨在提供一个实际操作的例子,帮助开发者理解如何在自己的应用程序中实现这一功能。下面我们将详细探讨iOS App版本更新的相关知识点。 首先,我们需要知道iOS中的版本更新通常有两种...

    iOS开发—环境准备1—iOS程序打包与发布视频教程下载(3课程).txt

    - **自动化构建与打包**:利用持续集成工具如Jenkins实现自动化的构建与打包流程。 - **多渠道打包**:针对不同市场或特定用户群体的需求进行定制化打包。 - **性能优化**:通过对应用进行细致的性能调优来提升用户...

    ios多选图片,自动排列

    在iOS开发中,实现“ios多选图片,自动排列”的功能涉及到多个技术点,主要集中在用户界面(UI)设计、图像处理以及多媒体访问权限管理。下面将详细解释这些知识点。 首先,**用户交互**是核心部分。在iOS中,我们...

    马上着手开发iOS应用程序_Apple

    - 打开Xcode后,系统会自动下载并安装必要的组件,包括iOS SDK。 ##### 2. 注册成为iOS开发者 - **注册原因**:为了能够在真机上测试应用,并最终发布到App Store,你需要注册成为iOS Developer Program成员。 - ...

    iOS内存泄漏检测器

    在iOS中,自动引用计数(ARC,Automatic Reference Counting)是一种自动管理对象生命周期的机制,它负责跟踪和释放不再使用的对象。然而,尽管ARC极大地简化了内存管理,但仍然可能存在内存泄漏,尤其是由于循环...

    ios苹果签名工具含免费证书亲测可用(源代码下载).zip

    标题中的“ios苹果签名工具含免费证书亲测可用(源代码下载)”表明这是一个针对iOS应用的签名工具,其中包含了可以免费使用的证书,并且已经经过了实际测试验证其有效性。这个工具可能是为了帮助开发者在不支付...

    ios程序 内存优化记录LOG日志-20130112

    针对“ios程序 内存优化记录LOG日志-20130112”这个主题,我们可以深入探讨如何通过分析日志来识别并解决内存问题。 首先,Instrument是iOS开发中的一个强大的工具,它可以用于检测应用程序的内存使用情况、性能...

    ios程序的本地化

    本文将深入探讨iOS程序的本地化过程,包括基础概念、步骤以及实践技巧,旨在帮助初学者理解并实现本地化。 一、本地化基础 1. 本地化与国际化(Internationalization):国际化是为程序设计一个可适应多种语言和...

Global site tag (gtag.js) - Google Analytics