iOS 关于版本升级问题的解决
从iOS8系统开始,用户可以在设置里面设置在WiFi环境下,自动更新安装的App。此功能大大方便了用户,但是一些用户没有开启此项功能,因此还是需要在程序里面提示用户的。
虽然现在苹果审核不能看到版本提示更新的功能和字样以及功能。但是有的app策划还是要提供这些功能。这里主要提供两种思路。
方法一
在服务器接口约定对应的数据,这样,服务器直接传递信息,提示用户有新版本,可以去商店升级
但是这个方法是有问题的,由于您的app在审核过程中 不能出现更新字样,所以在审核过程中就需要接口的返回的字段是新版本,这个时候老用户就会收到更新提示,但是新版本还在审核过程中。行不通。
解决方法
还是需要后台配合,你可以在发送请求的时候 把你当前的版本号 发送给后台 让后台去判断 该不该返回更新版本的信息。
方法二
检测手机上安装的app版本 然后给App store上的版本信息对比判断(目前最常用的方法)
步骤一:获取当前运行版本的信息 通过info.plist的bundle version获取
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
//当前版本号
NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];
步骤二:获取appstore中的app版本信息
-(void)judgeAppVersion{<br> //AppStore访问地址(重点)
NSString *urlStr = @"https://itunes.apple.com//lookup?id=AppID";
NSURL *url = [NSURL URLWithString:urlStr];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[NSURLConnection connectionWithRequest:req delegate:self];
}
#pragma mark - NSURLConnectionDataDelegate
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
NSError *error;<br> //解析
NSDictionary *appInfo = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
NSArray *infoContent = [appInfo objectForKey:@"results"];
//最新版本号
NSString *version = [[infoContent objectAtIndex:] objectForKey:@"version"];
//应用程序介绍网址(用户升级跳转URL)
NSString *trackViewUrl = [[infoContent objectAtIndex:] objectForKey:@"trackViewUrl"];
}
解析从AppStore获取到的App信息(这里就只介绍重点使用到的信息)
minimumOsVersion = "8.0"; //App所支持的最低iOS系统
fileSizeBytes = ; //应用的大小
releaseDate = ""; //发布时间
trackCensoredName = ""; //审查名称
trackContentRating = ""; //评级
trackId = ; //应用程序ID
trackName = ""; //应用程序名称
trackViewUrl = ""; //应用程序介绍网址
version = "4.0.3"; //版本号
步骤三:判断当前线上App的版本号与所使用的App版本号是否一致
if (![version isEqualToString:currentVersion]) {
[SimplifyAlertView alertWithTitle:@"检查更新:i店" message:[NSString stringWithFormat:@"发现新版本(%@),是否升级",version] operationResult:^(NSInteger selectedIndex) {
if (selectedIndex == ) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:trackViewUrl]];
}
} cancelButtonTitle:@"取消" otherButtonTitles:@"升级", nil];
}
iOS 关于版本升级问题的解决的更多相关文章
- (转)苹果iOS开发者账号过期临时解决方法
苹果iOS开发者账号过期临时解决办法 苹果iOS开发者账号一年的费用是99美金,作者最近由于各种原因,导致renew没能在账号过期之前支付好,所以在账号过期等待renew的期间,试了试一些非正常手段, ...
- mono ios莫名其妙闪退的解决方法
使用mono进行ios开发也有一年了,一直有个头疼的问题是闪退,而且闪退的时候并没有抛出明确的错误. 前两天在调试一个bug的时候,在序列化的时候又莫名其妙的闪退,后来在一位大神(博客地址)的指导下, ...
- ios相同版本升级
公司新发布ios,因为各种错误以及审核不通过造成app未能上传,而app在提交的时候不能上传相同的版本号,造成app还没有正式的上传上传已经将版本号升级到1.0.6 解决方法: 在Xcode上,查看项 ...
- iOS开发-闪退问题-解决之前上架的 App 在 iOS 9 会闪退问题
最新更新:(2015.10.02) 开发环境: Delphi 10 Seattle OS X El Capitan v10.11 需使用下列 HotfixID: 30398, PAServer Hot ...
- ios 静态库冲突的解决办法
最近在做一个 iOS 的 cocos2d-x 项目接入新浪微博 SDK 的时候被“坑”了,最后终于顺利的解决了.发现网上也有不少人遇到一样的问题,但是能找到的数量有限的解决办法写得都不详细,很难让人理 ...
- iOS 7.1耗电严重解决办法
自从iOS 7.1正式版发布以来,三天后的升级率就已经达到17.9%,预计一周后升级率能突破40%.但是也有不少用户在苹果官方支持论坛上抱怨iOS 7.1系统耗电严重. 名为PJS2006的iPhon ...
- iOS移动下上传图片失败解决 (上传多图,带其他参数)
项目中有一个主要的功能,就是上传图片,结结果移动真的是很奇怪,WiFi,联通,电信都没有问题的情况下,居然在移动下不行,真的是很头疼.不过好在最后是解决了 项目的网络请求我是采用ASIHttpRequ ...
- Xcode 只有iOS device一个选项的解决办法
下载了一个demo准备研究发现只有iOS device,没有其他的机型可选,解决方法比较简单,调下iOS SDK就行了
- IOS之TableViewCell重用机制解决上下刷新重复显示
首先我是一个经验浅薄的iOS开发人员,这个问题想必许多初学者经常遇到这些问题,在面试中也会经常问到.现在我们一一解决. 首先我们要知道TableViewCell重用机制的原理是什么,我们抽象的理解为古 ...
随机推荐
- iOS 三方库fmdb 的使用
使用fmdb 做本地数据的存储非常方便, 1. github 上搜索fmdb 下载压缩包 导入到工程中 (如果你的mac 有cocoapod 也可以直接通过cocoapod 添加) 2. 以下代码是通 ...
- iOS开发多线程篇—线程安全
iOS开发多线程篇—线程安全 一.多线程的安全隐患 资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源 比如多个线程访问同一个对象.同一个变量.同一个文件 当多个线程访问同一块 ...
- Asp.net中GridView使用详解(引)
GridView无代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridView和下拉菜单DropDownList结合GridView和CheckBox结合鼠标移到Gr ...
- Android java传递int类型数组给C
接着前面的文章<Android java传递int类型数据给C><Android java传递string类型数据给C>,继续实践 实现public native int[] ...
- TCP/IP 协议难点之一—— IP分片
1 IP协议简单介绍 就个人而言,网络中,抛开网络安全加密这些,就只单单讨论协议本身,比较难的有三个地方: IP分片与重组 TCP滑动窗口与TCP状态的改变 TCP定时器 其实协议本身根据<TC ...
- Win8&Win2012R2如何支持DOTA2输入法
微软自带的拼音和五笔就不用看了,没研究过,下面的方法应该不支持. 其实方法很简单运行下ctfmon.exe就可以了,这个原来旧输入模式的基础,测试可以支持QQ五笔. PS:使用拼音输入法的用户可以直接 ...
- jsoup解析HTML及简单实例
jsoup 中文参考文献 http://www.open-open.com/jsoup/ 本文将利用jsoup,简单实现网络抓取的功能,并给出一个小实例,该实例效果为:获取作者本人在博客园写的所 ...
- mysql源码解读之配置文件
要研究mysql,最好的资源莫过于源码了,所以本人打算通过调试源码的方式来深入理解mysql的点点滴滴.搭建mysql调试环境很简单,从官方下载mysql源码,利用cmake工具生成工程即可.为了方便 ...
- my_strcpy()
char* my_strcpy(char* des, const char* src){ while(*des++=*src++); return des; }
- MSSQL OPTION语句详解
一些联合表查询语句,这些表里都建立有索引.在没有加 option ( force order ) 前,整个查询费时40多秒,但 单独表 查询基本不到1秒.查看查询计划后发现查询过程是从table n开 ...