iOS app自动更新

转载 2015年11月21日 13:13:50
之前项目需要用到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);

以下便是比较,这两个版本号是否一致来决定是否更新,简单,故略之。有需要的可以留言联系。

移动应用(Android,IOS)自动更新替换方案

这个服务因为目前面临N多非技术的挑战,导致我们很难再从技术层面维护好这个服务: iOS: 第三方自动更新服务已经被苹果官方严格禁止了,集成第三方自动更新服务(如友盟+自动更新)的App在审核...
  • bat1992
  • bat1992
  • 2016年09月08日 14:28
  • 1670

iOS企业版APP发布与更新

今天讲的主要是在自己服务器上进行包的管理和新版本更新. iOS的APP安装不像安卓的包只要下载的链接是以.apk结尾,然后下载下来后就会自动提示安装,iOS是先下载下来一个plist文件,然后根据pl...
  • rxl_dhf
  • rxl_dhf
  • 2017年01月01日 22:39
  • 2858

iOS企业版程序发布--升级

1.首先要企业版的开发者帐号 2.证书配置参考 IOS开发--企业版IDP的申请及“In House”发布 3.打包 a . house 企业发布" style="margin...
  • xueer8835
  • xueer8835
  • 2014年01月09日 09:13
  • 21319

IOS开发-设置APP自动更新

iOS程序自动提示更新的实现方案大致分为两种:第一种,自己服务器提供一个接口,告知相关app的当前版本,是否需要更新,以及更新的地址等信息 。第二种,就是利用苹果的appstore 提供的相关api进...
  • dericsson
  • dericsson
  • 2014年02月19日 14:36
  • 507

ios 内购 “不自动更新”类订阅 购买指南(In-App Purchases: Non-Renewing Subscription Tutorial)

http://www.raywenderlich.com/36270/in-app-purchases-non-renewing-subscription-tutorial This post i...
  • logcabin
  • logcabin
  • 2013年08月07日 11:53
  • 1965

iOS App 自动登录的安全性分析

2015-03-26 16:36:48 来源:360GreedTeam 阅读:3543次 点赞(0) 收藏(1) 分享到: 引子 Cookie 有时也用其...
  • joeyon
  • joeyon
  • 2015年05月24日 10:20
  • 1263

iOS App作为从设备自动订阅特征值(initWithType:properties:value:permissions)

随着公司对蓝牙业务的深入,公司对蓝牙设备的要求也越来越精准。当手机作为从设备时目前一次交互100byte的数据耗时250毫秒左右。但是听说别的公司只需要150毫秒,所以我们还在努力靠近的路上。手机Ap...
  • longlongValue
  • longlongValue
  • 2017年06月05日 16:05
  • 284

Flash 免证书 开发 iOS app

  • 2013年07月16日 17:18
  • 19KB
  • 下载

类似今日头条的ios app

  • 2017年07月20日 16:14
  • 2MB
  • 下载

UI设计人员获取上线iOS App 图片

  • 2016年10月10日 10:18
  • 1.48MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS app自动更新
举报原因:
原因补充:

(最多只允许输入30个字)