iOS程序自动检测更新的实现
来源:互联网 发布:java薪资水平 编辑:程序博客网 时间:2024/05/17 22:30
之前项目需要用到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;
}
);
}
上面的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的当前版本,是否需要更新,以及更新的地址等信息 。
第二种,就是利用苹果的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);
以下便是比较,这两个版本号是否一致来决定是否更新,简单,故略之。有需要的可以留言联系
- iOS程序自动检测更新的实现
- iOS程序自动检测更新的实现
- iOS程序自动检测更新的实现
- iOS程序自动检测更新的实现
- iOS程序自动检测AppStore更新的实现
- iOS程序自动检测更新的实现
- iOS app自动检测版本更新的功能
- ios自动检测更新
- 06.iOS自动检测更新
- iOS自动检测版本更新
- Android 自动检测更新功能的实现
- 实现自动检测更新功能
- iOS 开发笔记 - 开发中如何实现自动检测更新APP
- iOS 自动检测版本更新APP
- 让你的AIR程序自动检测,下载,安装更新
- 轻松实现APP自动检测更新
- binbinyang---Android自动检测更新功能的实现--杨彬
- 自动检测版本更新的流程
- 黑马程序员——网络编程
- MySQL数据库性能优化六大技巧
- myeclipse的hibernate自动生成的DAO不写数据库的解决办法
- Oracle OCP 11G 052答案解析目录
- error while loading shared libraries: xxx.so.x"错误的原因和解决办法
- iOS程序自动检测更新的实现
- Android引入第三方包出现conversion to dalvik format failed with error 1 解决
- 正则表达式01
- 黑马程序员——反射
- ubuntu12.04-desktop 上安装VMware Tools(结合虚拟机VMware WorkStation)
- Spring三种注入IOC注入方式
- 《黑马程序员》java集合知识梳理
- 常用js判断代码
- iOS appStore 实现应用升级功能