Build Configuration?

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

pic1.png

使用场景

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

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

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

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

配置Build Configuration

1. 添加Configuration

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

pic2.png

2. 查看Configuration

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

pic3.png

3. 更改Preprocessor Macros

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

pic4.png

4. 在程序里配置对应的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这一项

pic6.png

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)

pic8.png

pic9.png

pic10.png

运行结果

iconDev.png

iconBeta.png

iconRelease.png

打包配置

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

 
转自:http://www.jianshu.com/p/51a2bbe877aa
 

Xcode多种Build Configuration配置使用的更多相关文章

  1. Xcode的多种Build Configuration

    一: 建多个Configuration的目的. 多套域名打包. 1 开发时的域名. 2 内测时的域名. 3 公测时的域名. 4 企业版的域名. 5 APP Store的域名. 通过注释的方式,容易出错 ...

  2. Xcode添加build configuration

    图片转载自:Adding a build configuration in Xcode

  3. TeamCity : Build 基本配置

    前文中我们在 TeamCity 中创建了一个项目 HelloApp,并在这个项目中创建了一个名为 HelloAppDailyBuild 的Build 用来编译 demo 程序.本文我们将详细介绍 Bu ...

  4. ITK 4.8.1 Qt 5.4 MinGW 4.9.1 Configuration 配置

    Download ITK 4.8.1 Download Qt 5.4 with MinGW 4.9.1 Download CMake 3.2.0 I assume you've already ins ...

  5. VTK 6.3.0 Qt 5.4 MinGW 4.9.1 Configuration 配置

    Download VTK 6.3.0 Download Qt 5.4 with MinGW 4.9.1 Download CMake 3.2.0 I assume you've already ins ...

  6. simplified build configuration

    http://blogs.msdn.com/b/saraford/archive/2005/08/16/452411.aspx Did you know… That you can hide the ...

  7. 【Spring】简述@Configuration配置类注册BeanDefinition到Spring容器的过程

    概述 本文以SpringBoot应用为基础,尝试分析基于注解@Configuration的配置类是如何向Spring容器注册BeanDefinition的过程 其中主要分析了 Configuratio ...

  8. Xcode中opengl的配置

    1. GLUT + GLTools + SDL2 Frameworks Search Paths :Framework + Library ( $(PROJECT_DIR)/build ) Searc ...

  9. Could not determine which “make” command to run. Check the “make” step in the build configuration

    环境: QT5.10 VisualStudio2015 错误1: Could not determine which “make” command to run. Check the “make” s ...

随机推荐

  1. 20135234mqy-——信息安全系统设计基础第十四周学习总结

    第九章 虚拟存储器 主要作用: 将主存看作是一个存储在磁盘上的地址空间的高速缓存,在主存中只保护活动的区域,并根据需要在磁盘和主存之间来回传送数据: 为每个进程提供了一致的地址空间,从而简化了存储器管 ...

  2. 实验作业:使gdb跟踪分析一个系统调用内核函数

    实验作业:使gdb跟踪分析一个系统调用内核函数(我使用的是getuid) 20135313吴子怡.北京电子科技学院 [第一部分] 根据视频演示的步骤,先做第一部分,步骤如下 ①更新menu代码到最新版 ...

  3. python scipy stats学习笔记

    from scipy.stats import chi2 # 卡方分布from scipy.stats import norm # 正态分布from scipy.stats import t # t分 ...

  4. Python之路3【知识点】白话Python编码和文件操作(截载)

    无意发现这篇文章讲的比较好,存下来供参考: http://www.cnblogs.com/luotianshuai/p/5735051.html

  5. AD分辨率和精度区别

    最近做了一块板子,当然考虑到元器件的选型了,由于指标中要求精度比较高,所以对于AD的选型很慎重.很多人对于精度和分辨率的概念不清楚,这里我做一下总结,希望大家不要混淆.我们搞电子开发的,经常跟“精度” ...

  6. ElasticSearch 2 (33) - 信息聚合系列之聚合过滤

    ElasticSearch 2 (33) - 信息聚合系列之聚合过滤 摘要 聚合范围限定还有一个自然的扩展就是过滤.因为聚合是在查询结果范围内操作的,任何可以适用于查询的过滤器也可以应用在聚合上. 版 ...

  7. 常用的cpl 命令 运行直接打开控制台的简单方法

    转载百度百科   工作中处理 windows机器 有时候 打开 网路修改ip地址特别繁琐,所以找了下 快速打开一些简单的控制台 能提高工作效率.   (Control Panel extension) ...

  8. 使用Java语言递归删除目录下面产生的临时文件

    背景:项目copy的过程中,在项目的目录文件夹下面都产生了一个固定的文件,很是讨厌.手动删除的话比较费力,所以写了一个简单的Java程序去删除: public static void main(Str ...

  9. 使用spring单元调试出错initializationError

    1.引入spring jar包之后,单元测试一直出错,提示initializationError. 2.在网上看说是junit版本的问题,引入其他版本之后,还是不对. 3.最后发现是需要引入 这两个j ...

  10. 1643【例 3】Fibonacci 前 n 项和

    1643:[例 3]Fibonacci 前 n 项和 时间限制: 1000 ms         内存限制: 524288 KB sol:这题应该挺水的吧,就像个板子一样 1 0 01 1 0   * ...