IOS学习之如何判断版本更新

ios自定义版本更新检测
招聘信息:
没有技术难点,只是希望为您节约更多的时间,去陪恋人、家人和朋友。祝您大吉大利、今晚吃鸡!具体实现代码参考源码https://github.com/wolfhous/HSUpdateApp
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量4583点击量4007点击量3475点击量3360点击量3359点击量3251点击量3080点击量2938点击量2815
&2016 Chukong Technologies,Inc.
京公网安备89没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
iOS开发 APP如何实现检测更新
摘要:App检测更新可以使用两种方法。第一种是和安卓等系统一样,获取自己服务器的App版本号与已安装的App版本号比较;第二种是根据已发布到AppStore上的应用版本号与已安装的App版本号比较更新。两种方法比较第一种检测更新方法的优点是:检测更新速度快、检测稳定;缺点是:和AppStore上的应用版本号不同步(App上架需要审核时间,不确定什么时候成功更新到AppStore上)。第二种方法检测更新方法的优点是:检测版本号是实时同步的;缺点是:苹果网络不稳定,检测更新有点延时,部
App检测更新可以使用两种方法。
第一种是和安卓等系统一样,获取自己服务器的App版本号与已安装的App版本号比较;
第二种是根据已发布到App Store上的应用版本号与已安装的App版本号比较更新。
两种方法比较
第一种检测更新方法的优点是:检测更新速度快、检测稳定;缺点是:和App Store上的应用版本号不同步(App上架需要审核时间,不确定什么时候成功更新到App Store上)。
第二种方法检测更新方法的优点是:检测版本号是实时同步的;缺点是:苹果网络不稳定,检测更新有点延时,部分App获取不到任何参数。代码在github的cjq002的CheckVersion上。
版本号比较方法
1、获取App当前版本号;
2、使用NSString自带方法进行比较。
跳转到App Store下载
1、格式化下载链接;
2、使用系统自带方法跳转到App Store应用下载页。
方法一:获取自己服务器版本号检查
1、通过网络请求获取服务器上的版本号;
2、调用上面的比较方法,比较前应用版本号和服务器上的版本号;
3、如果有版本更新则跳转到App Store上下载。
注:获取服务器版本号就需要自己去请求了。
方法二:获取App Store上架版本号检查
1、通过网络同步请求获取App Store上对应APP ID的应用信息;
2、提取信息上的最新版本号等信息;
3、提取最新版本号;
4、调用上面的比较方法,比较前应用版本号和最新版本号;
5、如果有版本更新则跳转到App Store上下载。
运行效果(以第二种方法,iOS版企鹅应用为例)
当前版本为3.2.1,请求控制台返回:“发现新版本 6.5.6”
(Demo在真机上会跳转到AppStore的企鹅下载页);
当前版本为6.5.6,请求控制台返回:“没有新版本”;
当前版本为6.6.6,请求控制台返回:“没有新版本”。
以上是全部步骤, 为了方便大家使用,下面粘上代码。
& - (BOOL)compareVersion:(NSString *)serverVersion {// 获取当前版本号NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];NSString *appVersion = [infoDic objectForKey:@&CFBundleShortVersionString&];// MARK: 比较当前版本和新版本号大小/*typedef enum _NSComparisonResult {NSOrderedAscending = -1L, 升序NSOrderedSame, 等于NSOrderedDescending 降序}*/// MARK: 比较方法if ([appVersion compare:serverVersion options:NSNumericSearch] == NSOrderedAscending) {NSLog(@&发现新版本 %@&, serverVersion);return YES;}else {NSLog(@&没有新版本&);return NO;}}- (void)aaa {// 下载地址可以是trackViewUrl, 也可以是items-apps://itunes.apple.com/app/idxxxxxxxxxxNSString *appId = @&xxxxxxxxx&;NSString *string = [NSString stringWithFormat:@&items-apps://itunes.apple.com/app/id%@&, appId];[[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]];}- (BOOL)checkAppStoreVersionWithAppId:(NSString *)appId {// MARK: 拼接链接,转换成URLNSString *checkUrlString = [NSString stringWithFormat:@&https://itunes.apple.com/lookup?id=%@&, appId];NSURL *checkUrl = [NSURL URLWithString:checkUrlString];// MARK: 获取网路数据AppStore上app的信息NSString *appInfoString = [NSString stringWithContentsOfURL:checkUrl encoding:NSUTF8StringEncoding error:nil];// MARK: 字符串转json转字典NSError *error =NSData *JSONData = [appInfoString dataUsingEncoding:NSUTF8StringEncoding];NSDictionary *appInfo = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingMutableLeaves error:&;error];if (!error &;&; appInfo) {NSArray *resultArr = appInfo[@&results&];NSDictionary *resultDic = resultArr.firstO// 版本号NSString *version = resultDic[@&trackName&];// 下载地址NSString *trackViewUrl = resultDic[@&trackViewUrl&];// FRXME:比较版本号return [self compareVersion:version];}else {// 返回错误 想当于没有更新吧return NO;}}- (void)viewDidLoad {[super viewDidLoad];static NSString *appId = @&xxxxxx&;// 返回是否有新版本BOOL update = [self checkAppStoreVersionWithAppId:appId];// 添加自己的代码 可以弹出一个提示框 这里不实现了if (update) {// 下载地址可以是trackViewUrl, 也可以是item-apps://itunes.apple.com/app/idxxxxxxxxNSString *string = [NSString stringWithFormat:@&items-apps://itunes.apple.com/app/idxxxxx&];[[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]];}}
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
为您提供0门槛上云实践机会
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
iOS开发 APP如何实现检测更新相关信息,包括
的信息,所有iOS开发 APP如何实现检测更新相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!iOS 公测版/开发者预览版如何升级到正式版?
iOS 公测版/开发者预览版如何升级到正式版?
有些朋友在 iOS 10.2 Beta 1 时就开始体验开发者预览版/公测版系统,使用期间或多或少会出现一些卡顿、耗电或者其它 Bug,对使用体验着实产生了一定的影响,想要回到正式版却不知该怎么做。
现在正式版 iOS 10.2 发布了,我们就教大家如何从开发者预览版/公测版升级到 iOS 正式版。
删除“通行证”大法
要体验 iOS Beta 版系统必须有一个“通行证”——iOS 测试版软件描述文件(iOS Beta Software Profile),在 Safari 中下载后系统会自动识别并安装,重启系统之后,你的这部 iOS 设备就获得了体验 Beta 系统的权限。
所以,需要恢复到正式版系统的话,把这个通行证“扔掉”即可,点击设置-通用-描述文件-iOS Beta Software Profile-删除描述文件,之后重启设备就可以了。
如果已经升级到了 iOS 10.2 Beta 7 版本,那么你现在使用的就是正式版系统了,还停留在 Beta 6 甚至是更早的版本的同学,删除描述文件后,再检查一次软件更新,你就能看到更新内容十分完整的 iOS 10.2 正式版推送。

我要回帖

 

随机推荐