扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
iOS获取当前app的名称和版本号
创新互联公司服务项目包括越城网站建设、越城网站制作、越城网页制作以及越城网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,越城网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到越城省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];//获取app版本信息
NSLog(@"%@",infoDictionary); //这里会得到很对关于app的相关信息
下面,我们开始取需要的字段:
// app名称
NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"];
// app版本
NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
// app build版本
NSString *app_build = [infoDictionary objectForKey:@"CFBundleVersion"];
//手机序列号
NSString* identifierNumber = [[UIDevice currentDevice] uniqueIdentifier];
NSLog(@"手机序列号: %@",identifierNumber);
//手机别名: 用户定义的名称
NSString* userPhoneName = [[UIDevice currentDevice] name];
NSLog(@"手机别名: %@", userPhoneName);
//设备名称
NSString* deviceName = [[UIDevice currentDevice] systemName];
NSLog(@"设备名称: %@",deviceName );
//手机系统版本
NSString* phoneVersion = [[UIDevice currentDevice] systemVersion];
NSLog(@"手机系统版本: %@", phoneVersion);
//手机型号
NSString* phoneModel = [[UIDevice currentDevice] model];
NSLog(@"手机型号: %@",phoneModel );
//地方型号 (国际化区域名称)
NSString* localPhoneModel = [[UIDevice currentDevice] localizedModel];
NSLog(@"国际化区域名称: %@",localPhoneModel );
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
// 当前应用名称
NSString *appCurName = [infoDictionary objectForKey:@"CFBundleDisplayName"];
NSLog(@"当前应用名称:%@",appCurName);
// 当前应用软件版本 比如:1.0.1
NSString *appCurVersion = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
NSLog(@"当前应用软件版本:%@",appCurVersion);
// 当前应用版本号码 int类型
NSString *appCurVersionNum = [infoDictionary objectForKey:@"CFBundleVersion"];
NSLog(@"当前应用版本号码:%@",appCurVersionNum);
[img]之前一直在使用这个链接一直没问题,突然获取的版本号过于陈旧,没有及时更新(id为应用在App Store中id)
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@" ", @""]];
修改后的版本,可以及时更新,链接中添加cn
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@" ", @""]];
获取App Store版本号的方法
其实 [[NSBundle mainBundle]infoDictionary] 获得的是一个字典,里边放着Info.plist文件中的各种信息,根据不同的键去即可。除了以上常用的,剩下的就不一一列举了,如果有需要自己查吧,哈哈哈。
开发中我们可能会遇到这样的需求,当 AppStore 中有新版本迭代更新,在用户点开 APP 的时候弹框提醒客户去 AppStore 更新 APP。这里面就有个关键点,判断当前 APP 与 AppStore 中的版本高低,若一样,则无需进行提示;反之则弹框提示(用户使用版本不会比 AppStore 版本高)。下面就了解如何获取 APP 在 AppStore 中的版本号。
升级
关于iOS版本升级,苹果是不允许用户有强制用户升级的提示的,但是为了让用户知道APP更新了,一般APP里面是会有版本升级提示。下面来介绍一下一般都是怎么做的。
Tips:
1、用 "" 获取版本号,会出现延迟或请求回来的版本号不稳定还有就是与刚刚发布的版本号对不上。 这个是连接国外的服务器,所以会有延迟。 解决:使用 "" 路径。
2、如果上架的时候只选中国,而且又用"" 获取版本号,那么 resultCount 就为 0,获取不到版本数据。解决方法同上。
3、曾经测试反馈在 APP 刚启动时候都是白屏的情况。发现是版本号请求引起线程阻塞,所以要注意多线程问题。
4、应用程序还没有发布,如何获取它的 id 啊。不急,App Store Connect 创建要发布应用的时候会生成这个 id 的。
5、请求中需要的 id,登录开发者账号到 App Store Connect 上查看 App ID。
More Thinking , 如何进行强制更新和非强制更新?
Was this help article useful? Send feedback.
方法/步骤
创建工程项目和视图控制器
1、创建工程项目,新建一个UIViewController;
2、选中工程,右键-New File…选择“Cocoa Touch Class”-Next,给个合理的名称ViewController,再Next完成;
3、在AppDelegate.m文件包含#import "ViewController.h";
4、初始化创建ViewController的视图控制器,并用导航栏控制器包含。将之设置为根视图控制器。
方法一:获取自己服务器版本号检查
1、通过网络请求获取服务器上的版本号;
2、获取当前应用版本号;
3、将版本号转换为整形进行比较;
4、如果有版本更新则跳转到app store上下载。
方法二:获取app store上架版本号检查
1、通过网络同步请求获取app store上对应APP ID的应用信息;
2、提取信息上的最新版本号和下载地址;
3、获取当前应用版本号;
4、将版本号转换成双精度型进行比较;
5、对于有两个点的版本号的最后一个点不处理。
方法二:进行比较版本号
1、比较两个double大小;
2、创建并初始化一个UIAlertView用以显示是否更新以及更新内容;
3、为UIAlertView添加代理方法;
4、[alert show]显示结果。
当需要更新下载时需要跳转下载
6
运行效果(以第二种方法,iOS版QQ应用为例截图)
1.首先获取你的应用的id。这个可以在itunes上获取链接中有ID。
2.发送POST请求
NSString *URL =
@=你的应用ID";
3.从服务器返回的数据中取出version这个值就是版本号。接下来在进行比较
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流