Build Configuration?
Xcode默认会有2个编译模式,一个是Debug,一个是Release。Release下不能调试程序,编译时有做编译优化,会比用Debug打包出来的运行快,另外包也会更小。
![](https://i-blog.csdnimg.cn/blog_migrate/6306cb7a9bcc622a59693bab2efbbafb.webp?x-image-process=image/format,png)
使用场景
我自己碰到的使用场景是,我司的域名有3套:
- 针对开发时的域名
- 针对预上线时的域名
- 针对上线时对外公开的域名
这个时候,就会有多套域名,全部加起来可能有15个左右。每次打包时,就会特别混乱。(注释掉现在使用的域名,打开原本注释掉的那部分,出差错的可能蛮高的,而且不利于阅读)
这个时候,我们就使用它来针对3个环境下不同域名做配置。
配置Build Configuration
1. 添加Configuration
这里我们添加DEVELOP、BETA、保留原有的(release)。这里我们选择直接duplicatte Debug的配置,因为Release的不能做断点调试。
![](https://i-blog.csdnimg.cn/blog_migrate/f6879d43aeb81f4bdfa118a615cad731.webp?x-image-process=image/format,png)
2. 查看Configuration
添加完第1步的Configuration之后,在Edit Scheme里就会看到新添加的配置项
![](https://i-blog.csdnimg.cn/blog_migrate/ebc89f078fc263daf9ab4d56066a60ad.webp?x-image-process=image/format,png)
3. 更改Preprocessor Macros
第1步里我们直接复制了Debug的配置项,那这里的值就会有问题,需要自己设置。
![](https://i-blog.csdnimg.cn/blog_migrate/8305088a8cb42564c2b9ef27d896af77.webp?x-image-process=image/format,png)
4. 在程序里配置对应的Configuration下不同域名
![](https://i-blog.csdnimg.cn/blog_migrate/1411ab4dc4f3cb4951b6aebf64fcd023.webp?x-image-process=image/format,png)
5. 测试
运行程序,修改Scheme下不同的Configuration,就能得到不同的值,那结果就是正确的了。
基于以上的实验,app还可以在不同环境下配置不同的AppIcon和AppName
AppIcon
使用Asset Catalog,分别给三种环境下配置3个名字
- AppIcon
- AppIconDEVELOP
- AppIconBETA
然后去Target - Build Settings里搜索Asset Catalog App Icon Set Name这一项
![](https://i-blog.csdnimg.cn/blog_migrate/9da98992ab9e92abd8412a0197c50159.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/a87cd9bb409acf7b028d77f8207ea0b4.webp?x-image-process=image/format,png)
App Name
Target - Build Settings里点+号,添加一个User-Defined Setting
比如我们请一个叫APP_DISPLAY_NAME的key值,下面BETA叫BETA,DEVELOP叫DEVELOP, Release还是用系统原配置。
进到Target - Info里,修改Bundle display name为$(APP_DISPLAY_NAME)
![](https://i-blog.csdnimg.cn/blog_migrate/80e93abf98d009bcec1e3ef500518bff.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/97e6f5170cd7b7cfb299a9f6fc4d6354.webp?x-image-process=image/format,png)
运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/1ef408943132b10871bcc7fe56e62dc6.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/8e2b56d10571e36ffce412b4da343e03.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/9f9974a7769e6d36c26bd0a42782bcd1.webp?x-image-process=image/format,png)
打包配置
这几天我们做了一件很蠢的事,把开发用的环境打包发给了Apple。
为了弥补这件事,顺便规范以后的打包问题,于是做了一些配置上的补救。
查了下Apple的文档,原来可以配置,我将Release环境以外的Skip Install配置成NO,就不会Archive出ipa了。
![](https://i-blog.csdnimg.cn/blog_migrate/d91ed2b8a967da5d5b1065b0567fa865.webp?x-image-process=image/format,png)