iOS 设置App的名称

时间:2024-05-19 15:16:46

App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的名字就是Xcode在建立工程时的名字。好的习惯是工程建立时使用英文(pinyin),那么App也就是“英文”名字了,虽然Xcode也支持直接用中文命名工程(甚至是方法名……),但有时也会因此产生一些不必要的麻烦甚至莫名其妙的bug。

本文主要介绍两种设置App名称的方法,第一种较为简单,第二种涉及简单的版本国际化与本地化(Localization)的问题。

 

 

1.Bundle display name

先看此方法的具体设置步骤:

  • 建立工程如下,如果不设置App名,默认的App名就是工程名了。

iOS 设置App的名称

  • 点击工程-TARGETS-Info,添加“Bundle display name”,string值填写要设置的App名称。

iOS 设置App的名称

  • 再次编译,效果如下,这个方法就是这么简单了。

iOS 设置App的名称

具体也没太多好说的,检索App名称设置时,大部分答案也是这个,因为比较简单。

这里提一下Bundle name和Bundle display name:

Bundle name - is folder name, where your app (including executable file and all resources) will be stored (Cool Program.app)。建议不要修改bundle name
Bundle display name - is what will be shown on iPhone screen,即当你安装该app到iPhone上显示的name。
注意:Bundle Display name must correspond to Bundle name,即bundle display name和bundle name不能相差太远。例如bundle name设置为 TheApplication, 而 bundle display name设置为“金瓶梅”,则apple会拒绝你的app。

2.InfoPlist.strings->CFBundleDisplayName

这种方法较为繁琐,但是可以支持多语言版本名称的设置,即Localization,也先看具体步骤:

  • 新建一个Strings File,命名应该不一定非得是InfoPlist.strings,应该是沿用习惯。

iOS 设置App的名称

  • 点击工程-PROJECT-Info-Localizations,添加简体中文支持,如果想支持繁体,也可继续添加,其他语言亦然。

iOS 设置App的名称

iOS 设置App的名称

  • 点击之前创建的InfoPlist.strings - 点击右边的“Localizion”- 添加简体中文

iOS 设置App的名称

可以选择支持英文

iOS 设置App的名称

iOS 设置App的名称

  • 分别设置中英文名字

"CFBundleDisplayName" = "中文名字";

"CFBundleDisplayName" = "EnglishName";

名字字符串自己填写就好,这里只是示范

iOS 设置App的名称

  • 编译工程

分别切换模拟器的设置中的语言至中英文模式,分别查看appiocn下面的名字的变化:

iOS 设置App的名称

3.关于默认语言的设置:Localization native development region

Xcode建立工程时,默认语言环境是英文,所以在调用一些系统空间时(例如相机相册),其控制按键的标题都是英文显示的状态,快速的设置方法就是设置Localization native development region的值,具体步骤可以参考此文:Localization native development region 更改语言无效 中的第一段内容。

4. Localizations版本国际化

这个就是为了让APP支持多国语言环境,最好的Demo应该是环信的官方Demo,这里只是介绍一下简单的用法:

  1. 同添加InfoPlist.strings的做法相同,添加一个Localizable.strings文件

  2. 对应中英文(其他语言自行添加),分别添加下列语句:

   

关于上述的key和value,只是示范,可自行定义,调用这些key-value需要利用NSLocalizedString(<#key#>, <#comment#>)系统宏,例如:NSLocalizedString(@"alertTitle", @"这是一句注解,根据情况写"),第一个参数即在strings文件中自定义的key,根据不同的语言环境,系统会自动检测这个key对应的value(中文还是英文),第二个参数是注释,为了便于理解,可以为nil。
实际用例:

   

分别设置系统的语言环境至中英文模式,效果如下:

iOS 设置App的名称

上面的写法看起来比习惯上直接写string去设置标题要麻烦许多,但是常用的标题可以进行二次宏定义管理,那样不仅使用方便,还便于统一管理。
看一下环信Demo中的示范:

iOS 设置App的名称