获取应用名字、版本号
项目有些需求可能需要获取项目的名字,这里只是简单的写下自己的想法
项目名字、版本号等属性是plist文件形式维护的,需要拿到bundle文件中管理各种属性的字典,根据相应的key去获取对应的值。
[[NSBundle mainBundle] infoDictionary];
复制代码
打印其数据:
{BuildMachineOSBuild = 15G1217;CFBundleDevelopmentRegion = en;CFBundleExecutable = GetAppName;CFBundleIdentifier = "com.cai.GetAppName";CFBundleInfoDictionaryVersion = "6.0";CFBundleName = GetAppName;CFBundleNumericVersion = 16809984;CFBundlePackageType = APPL;CFBundleShortVersionString = "1.0";CFBundleSupportedPlatforms = (iPhoneSimulator);CFBundleVersion = 1;DTCompiler = "com.apple.compilers.llvm.clang.1_0";DTPlatformBuild = "";DTPlatformName = iphonesimulator;DTPlatformVersion = "10.2";DTSDKBuild = 14C89;DTSDKName = "iphonesimulator10.2";DTXcode = 0821;DTXcodeBuild = 8C1002;LSRequiresIPhoneOS = 1;MinimumOSVersion = "10.2";UIDeviceFamily = (1);UILaunchStoryboardName = LaunchScreen;UIMainStoryboardFile = Main;UIRequiredDeviceCapabilities = (armv7);UISupportedInterfaceOrientations = (UIInterfaceOrientationPortrait,UIInterfaceOrientationLandscapeLeft,UIInterfaceOrientationLandscapeRight);}
复制代码
//CFBundleExecutable -> 获取项目工程名
//CFBundleIdentifier -> 获取应用唯一标识
//CFBundleName -> 获取项目工程名
//CFBundleShortVersionString -> 获取应用版本号 (App Store上版本号 -> Version)
//CFBundleVersion -> 获取应用内部版本号(Build)
复制代码
#####默认
- 新建一个项目,工程名设置为: GetAppName,其他不做任何修改,输出相关key的值:
NSLog(@"--%@--%@--%@", [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"], [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleExecutable"], [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]);
复制代码
- Output:
--GetAppName--GetAppName--(null) --> 因为Display Name未设置 则不存在此key的值
复制代码
#####仅设置Display Name
//1. Display Name不为空: --> 工程 -> TARGETS -> General -> Identity -> Display Name: 简书-创作你的创作NSLog(@"-%@", [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]);//输出: -简书-创作你的创作
复制代码
#####仅设置Info.plist中Bundle name的值为中文
//2. Display Name 为空: --> Info.plist文件中Bundle name的值修改app名字为中文 例如: 简书NSDictionary *appInfo = [[NSBundle mainBundle] infoDictionary];NSLog(@"%@", [appInfo objectForKey:(NSString *)kCFBundleNameKey]);//输出: 简书
复制代码
#####既设置Info.plist中Bundle name的值为中文又设置Display Name
//3.Info.plist文件中Bundle name的值修改app名字为中文 例如: 简书 并且 修改设置Display Name: 简书-创作你的创作NSLog(@"--%@--%@--%@", [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"], [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleExecutable"], [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]);//输出: --简书--GetAppName--简书-创作你的创作
复制代码
PS: 两者均设置的情况下,手机界面显示的应用名字和Display Name设置的名字保持一致。
建议使用仅设置Info.plist中Bundle name的值的方式设置应用名字,这样在获取应用名字的时候,防止使用CFBundleDisplayName不存在造成获取值为空。
#####如何拿到应用名字、版本号等key:
除了直接使用代码方式将其打印出来,还可以如下图:
或者
code
获取应用名字、版本号相关推荐
- VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#)
原文: VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#) 在开发项目时,需要知道当前发布的到底是哪个版本,比较好的方式就是获取SVN的版本来作为项目的版本.项目版本一般由主 ...
- Java 获取操作系统名字、系统版本、cpu信息
Java 获取操作系统名字.系统版本.cpu信息 System.getProperty("os.name");//得到操作系统名字 System.getProperty(" ...
- C#获取程序集的版本号和最后编译时间
C#获取程序集的版本号: string ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToStri ...
- android获取版本号报错,Android开发:获取安卓App版本号的方法步骤
在Android开发过程中,想要开发一个完整功能的App,各个地方的内容都要涉及到,比如获取App的系统版本号就是必须要有的功能.Android的App版本号相关内容比iOS的App版本号内容要多,而 ...
- C语言:运行中获取宏名字的技巧
C语言:运行中获取宏名字的技巧 在调试C语言程序时,有时需要打印宏的名字.可以通过定义宏,宏名字的数组来获得. 例如: [cpp] view plaincopy #include <stdio. ...
- PHP 获取浏览器以及版本号
PHP 获取浏览器以及版本号 增加获取 chrome浏览器 各大经典浏览器HTTP_USER_AGENT详细 IE 而IE各个版本典型的userAgent如下: Mozilla/4.0 (co ...
- 通过movie_id来查询数据库获取电影名字和平均得分
douban_comment_data.db中包含三个表:comment.movie.movie_chinese.三个表中的数据模块定义(DDL)如下: 1.comment CREATE TABLE ...
- 微信小程序获取小程序版本号与服务器不符,微信小程序版本号比较
首先获取到当前版本号 : wx.getSystemInfo({ success (res) { console.log(res.model) //获取设备名:iPhone,Meizu...... co ...
- 获取阿里云mysql实例名称_阿里云如何获取数据库名字
全网最新活动请看下方内容或右侧内容! --------------- 阿里云如何获取数据库名字,阿里云服务器回滚数据库. 对于大多数小型或初期项目来说,我们可能常用的做法是先将web.数据库全部安装在 ...
- Mac开发之获取设备名字、IP地址和MAC地址
在项目中遇到需要获取设备名字.IP地址和MAC地址信息,之前用NSHost,结果发现不是很稳定,就放弃了,另外想出了几个方法,下面记录一下: ViewController.h // // ViewCo ...
最新文章
- java 虚拟机 初始化_Java虚拟机 类初始化 阶段
- 4计算准确率_PyTorch实现,GitHub 4000星:这是微软开源的计算机视觉库
- 安装教程-VMware 12 安装 Windows 10 企业版
- Oracle 每个session的限制,限制oracle普通用户能且只能kill自己的会话
- 滴滴顺风车春运暂不上线;锤子员工被强制离职;苹果聘请三星高管 | 极客头条...
- Wireshark实战分析之IP协议(一)
- 【Paper】2015_Coordinated cruise control for high-speed train movements based on a multi-agent model
- [Linux 基础] -- Linux 之 fstab 文件详解
- java计算机毕业设计小小银动漫网站源代码+数据库+系统+lw文档
- Android应用内跳转Scheme协议
- quoted-printable解码程序
- 远距离激光多脉冲测距TDC2K8S芯片使用
- java 实现http长轮询,Long Polling长轮询实现进阶
- 大数据技术原理与应用(第十章 Spark)
- 钢筋计数VOC数据集
- JavaGUI:多功能计算器(五)--Swing实现双语数据包+菜单切换(完整源码+EXE下载)
- 基于S32K144实现TPS929120的基本控制功能
- 数据结构与算法——迷宫问题
- 宇视摄像机接入TSINGSEE青犀视频平台,如何基于SDK获取设备的组织和摄像机?
- 理财系列 2 股票体检指标之市盈率