在开发中经常会针对不同环境打包,在一部手机上安装Debug、Beta、AppStore等版本,每次打包的时候,都得去更改BundleID(一部手机想要安装不同版本,更改BundelID是关键)、域名,如果需要打出来的包显示不同的名字不同的图标呢,这种方法肯定是不可取,那怎样才能最快的在这几种版本之间切换打包呢,XCode给了我们Configuration、Schemes来快速切换
一、创建Build Configurations
默认Xcode会提供2个Build配置项(Build Configuration):Debug和Release。一般来说这样两种情况就足够了,但是在有些时候我们需要添加一个或多个新的配置项,添加一个新的配置项的步骤如下:
1)、方式:选中PROJECT的名称,然后选中Info,点击Configurations下面的+选择Duplicate "Debug"Configuration生成一个新Configuration,双击重命名configuration ,修改如下图:
二、创建 User-Defined Setting
在Xcode中使用User-Defined Setting可以定义一些Xcode编译使用的宏配置,以便我们为不同的配置能够分配不同的包ID,图标名称或AppID。
1、开启User-Defined Setting,如下图:
2、这里添加了两个:APP_BUNDLE_ID (APP Bundle ID)和APP_DISPLAY_NAME(APP的名称)。
添加User-Defined Setting后,编辑里面每个设置构建配置值效果如下图:
3.App Icon 设置在Assets 中 ,右键如图 . 然后把之前准备好的图标分别拖进去:
](http://upload-images.jianshu.io/upload_images/2641792-cb08e3aae93e28c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
将各版本和appIcon对应,显示不同的图标
三、修改Info.plist文件
所有在上一步中定义的User-Defined Setting将在项目的info.plist中使用。修改info.plist,通过插入用户自定义设置中定义的值。
Bundle identifiter(捆绑标识符):$(APP_BUNDLE_ID)
Bundle display name(包显示名称):演示应用$(APP_DISPLAY_NAME)
在这里说一下在模拟器/真机上显示的名字是由Bundle Display Name决定的。默认情况下Bundle Display Name就等同于Product Name,所以就造成了我认为Product Name就是应用显示名的错觉。
四、设置Macros,这样通过判断当前状态,选用不用域名
五、添加Scheme
记得选择shared,以便同步
设置Scheme对应的Configuration
六、设置完毕后,可选择Scheme进行Run,Debug,Beta编译后进入手机桌面,该工程将会有不同图标(这里没有设置图标),名称的App(
如果不想创建新的Scheme也可以不创建,自己手动切换就可以了)