概念
-
workspace(工作区)
workspace是一个文档,用于对 projcet和其他文档进行分组,以便可以一起处理它们。workspace可以包含任意数量的 projcet,以及任何其他要包含的文件。除了组织每个 projcet中的所有文件之外,工作区还提供所包含 projcet及其 target之间的隐式和显式关系。
-
project(项目)
project是构建一个或多个 product所需的所有文件、资源和信息的存储库。project包含用于构建 product的所有元素,并维护这些元素之间的关系。它包含一个或多个 target,这些 target指定如何生成 product。project为 project中的所有 target定义默认 build settings(每个 target还可以指定自己的 build settings,这些 build settings将覆盖 project生成的 build settings)。
-
target(目标)
target指定要生成的 product,并包含从 project或 workspace中的一组文件构建 product的说明。target定义单个 product;它将输入组织到构建 product所需的构建系统(源文件和处理这些源文件的说明)中。project可以包含一个或多个 target,每个 target生成一个 product。
-
product(软件产品)
-
build settings(生成设置)
build settings是一个变量,其中包含有关如何执行product生成过程的特定方面的信息。例如,build settings中的信息可以指定 Xcode 传递给编译器的选项。
-
scheme(方案)
scheme定义了要生成的 target集合、生成时要使用的 build settings以及要执行的测试集合。
配置
配置设计
环境变量
工程环境配置中涉及到的变量主要有:
-
log打印
-
打印
-
不打印
-
-
服务器环境
-
测试环境
-
正式环境
-
-
推送环境
-
调试环境
-
线上环境
-
-
证书&&描述文件
-
开发证书&&开发描述文件
-
发布证书&&临时描述文件
-
发布证书&&发布描述文件
-
工程环境
考虑到开发调试、测试(使用testflight)、发布的需求,故设计三种工程环境:
-
debug调试环境
debug调试环境提供给开发人员开发调试使用。
-
test测试环境
test测试环境用来给测试人员打测试包。
-
release发布环境
release发布环境用来发布。
工程环境、环境变量
工程环境及环境变量关系:
工程环境 | log打印 | 服务器环境 | 推送环境 | 证书&&描述文件 |
---|---|---|---|---|
debug | 打印 | 测试环境 | 调试环境 | 开发证书&&开发描述文件 |
test | 不打印 | 测试环境 | 调试环境 | 发布证书&&发布描述文件 |
release | 不打印 | 正式环境 | 线上环境 | 发布证书&&发布描述文件 |
配置实践
工程环境编辑
porject->info->configurations
环境变量控制定义
targets->build settings->preprocessor macros
环境变量定义
#ifdef DEBUG
#define PSLog(fmt, ...) NSLog((@"%s [Line %d]" fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define PSLog(...)
#endif
#pragma mark -服务器配置
#ifdef NETWORK_TEST
#define PSDomain @""
#else
#define PSDomain @""
#endif
网友评论