IOS开发-设置APP自动更新
2014-02-19 14:36
477 查看
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);接下来便是比较,这两个版本号是否一致来决定是否更新。
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);接下来便是比较,这两个版本号是否一致来决定是否更新。
相关文章推荐
- 伊斯兰自由大学:研究发现商店背景音乐不影响消费者行为
- 苹果iOS开发中如何直接跳转到App Store里面?
- PhoneGap官网翻译 iOS开发常见问题文档
- android BitmapFactory.decodeFile()返回为null问题
- 复制android Assets到 sd卡
- Quartus:instantiates undefined entity错误
- Android事件分发机制完全解析,带你从源码的角度彻底理解
- 解决android.os.NetworkOnMainThreadException
- android事件博客
- ios --- Tabbar 的图标模糊问题
- Unity Input 鼠标模拟
- Android触摸事件分发机制
- 【java初学笔记3】马士兵-java-面向对象-34->36-Object类的问题
- Android NFC 标签分发系统小析
- iOS7控键变化及页面效果
- VideoView播放视频
- android之自定义ViewGroup和自动换行的布局的实现
- windows appfabric samples
- Ubuntu下载Android源码(最新)
- 【微信攻略】如何增加微信公众号订阅量?