Xcode多种Build Configuration配置使用

Build Configuration?

Xcode默认会有2个编译模式,一个是Debug,一个是Release。Release下不能调试程序,编译时有做编译优化,会比用Debug打包出来的运行快,另外包也会更小。

Xcode多种Build Configuration配置使用
pic1.png

使用场景

我自己碰到的使用场景是,我司的域名有3套:

  1. 针对开发时的域名
  2. 针对预上线时的域名
  3. 针对上线时对外公开的域名

这个时候,就会有多套域名,全部加起来可能有15个左右。每次打包时,就会特别混乱。(注释掉现在使用的域名,打开原本注释掉的那部分,出差错的可能蛮高的,而且不利于阅读)

这个时候,我们就使用它来针对3个环境下不同域名做配置。

配置Build Configuration

1. 添加Configuration

这里我们添加DEVELOP、BETA、保留原有的(release)。这里我们选择直接duplicatte Debug的配置,因为Release的不能做断点调试。

Xcode多种Build Configuration配置使用
pic2.png

2. 查看Configuration

添加完第1步的Configuration之后,在Edit Scheme里就会看到新添加的配置项

Xcode多种Build Configuration配置使用
pic3.png

3. 更改Preprocessor Macros

第1步里我们直接复制了Debug的配置项,那这里的值就会有问题,需要自己设置。

Xcode多种Build Configuration配置使用
pic4.png

4. 在程序里配置对应的Configuration下不同域名

Xcode多种Build Configuration配置使用
pic5.png

5. 测试

运行程序,修改Scheme下不同的Configuration,就能得到不同的值,那结果就是正确的了。


基于以上的实验,app还可以在不同环境下配置不同的AppIcon和AppName

AppIcon

使用Asset Catalog,分别给三种环境下配置3个名字

  • AppIcon
  • AppIconDEVELOP
  • AppIconBETA

然后去Target - Build Settings里搜索Asset Catalog App Icon Set Name这一项

Xcode多种Build Configuration配置使用
pic6.png
Xcode多种Build Configuration配置使用
pic7.png

App Name

Target - Build Settings里点+号,添加一个User-Defined Setting

比如我们请一个叫APP_DISPLAY_NAME的key值,下面BETA叫BETA,DEVELOP叫DEVELOP, Release还是用系统原配置。

进到Target - Info里,修改Bundle name为$(APP_DISPLAY_NAME)

Xcode多种Build Configuration配置使用
pic8.png
Xcode多种Build Configuration配置使用
pic9.png
Xcode多种Build Configuration配置使用
pic10.png

运行结果

Xcode多种Build Configuration配置使用
iconDev.png
Xcode多种Build Configuration配置使用
iconBeta.png
Xcode多种Build Configuration配置使用
iconRelease.png

打包配置

这几天我们做了一件很蠢的事,把开发用的环境打包发给了Apple。
为了弥补这件事,顺便规范以后的打包问题,于是做了一些配置上的补救。
查了下Apple的文档,原来可以配置,我将Release环境以外的Skip Install配置成NO,就不会Archive出ipa了。

Xcode多种Build Configuration配置使用
 
转自:http://www.jianshu.com/p/51a2bbe877aa
 
上一篇:WinForm界面中快捷键设置


下一篇:SQLServer 2008中SQL增强之三 Merge(在一条语句中使用