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. 基于tensorflow 1.x 的检索机器人chatbot-retrieval

    Chatbot-retrieval说基于tensorflow的检索机器人,原版的代码路径是 https://github.com/dennybritz/chatbot-retrieval, 但是在te ...

  2. PAT甲题题解-1005. Spell It Right (20)-数位求和,水

    把每个位上的数字求和sum,然后以英文单词的形式输出sum的每个位 #include <iostream> #include <cstdio> #include <alg ...

  3. 1079. Total Sales of Supply Chain (25)-求数的层次和叶子节点

    和下面是同类型的题目,只不过问的不一样罢了: 1090. Highest Price in Supply Chain (25)-dfs求层数 1106. Lowest Price in Supply ...

  4. 作业 20181204-4 互评Final版本

    此作业要求参见:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2478] 组名:可以低头,但没必要 组长:付佳 组员:张俊余 李文涛 孙 ...

  5. Redis学习笔记之入门基础知识——其他特性

    1.订阅(subscribe)与发布(publish) 用户订阅某一个频道,频道发布新的信息时,会将信息告知用户 2.数据安全 1)     快照持久化(时间点转储,实质是数据副本) 操作:SAVA. ...

  6. 20135220谈愈敏Blog3_构造一个简单的Linux系统MenuOS

    构造一个简单的Linux系统MenuOS 谈愈敏 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1 ...

  7. A总结

    Alpha 答辩总结 评审表 组名 格式 内容 ppt 演讲 答辩 总计 天机组 15 15 14 15 14 73 PMS 16 16 15 15 16 78 日不落战队 16 16 16 15 1 ...

  8. AD分辨率和精度区别

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

  9. 各组Beta版本发布点评

    1.  新蜂:俄罗斯方块 俄罗斯方块已经基本完成了所有功能,运行流畅,也加入了之前用户期待的即将降落的方块和游戏积分的功能,用户还能随时暂停和继续游戏. 2. 天天向上: 连连看游戏 连连看游戏在核心 ...

  10. github建仓库注意

    在导入新的项目工程时,github建仓库时不要选择readme文件初始化仓库