-
Project: 包含了项目所有的代码,资源文件,所有信息。 -
Target:对指定代码和资源文件的具体构建方式。 -
Scheme:对指定Target的环境配置。
多环境配置的三种方式:
- 多tagert模拟多环境配置
- 会生成多个 info.plist文件,配置繁琐,容易出错
- 多 scheme + 多 configuration(Debug、Beta、Release)
- 多 scheme + xcconfig文件配置 (
推荐使用)- 通过把配置写到对应的文件,管理起来更加清晰
多Target配置
- 选中一个
Target,右击,复制一个Target
image
复制之后,会多出来一个Target和对应的info.plist文件
image
- 修改
Target和info.plist文件,对应的Build Settings—> Packaging—>Info.plist File也需要写成修改后的名称,否则编译器会报错
image
- 修改完成后,就可以通过
Scheme选择不同的 Target编译运行
image
image
多 scheme + 多 configuration
-
创建
Betaconfiguration
image
-
新建两个 Scheme,分别命名为
Debug、Beta
image
-
给
Scheme设置对应的configuration -
创建自定义参数
HOST_URL
image
-
在info.plist文件中添加
HOST_URL参数
image
-
通过读取
Info.list就可以得到 相应的HOST_URL
NSString *path = [NSBundle.mainBundle pathForResource:@"Info" ofType:@"plist"];
NSDictionary *infoDic = [[NSDictionary alloc] initWithContentsOfFile:path];
NSLog(@"====%@", infoDic[@"HOST_URL"]);
image
image
多 scheme + xcconfig文件配置
通过下图发现,pod 就是通过 xcconfig文件进行配置的
image
-
创建自己的
xcconfig文件, 注意保存的名称Config-LoginApp.debug.xcconfig,参考pod命名规则,文件名 - app名 . 环境 .xcconfig
image
image
-
在
xcconfig文件中自定义参数HOST_URL,以键值对形式设置
HOST_URL = www.debug.com
image
-
在info.plist文件中添加
HOST_URL参数
image
-
通过读取
Info.list就可以得到 相应的HOST_URL
NSString *path = [NSBundle.mainBundle pathForResource:@"Info" ofType:@"plist"];
NSDictionary *infoDic = [[NSDictionary alloc] initWithContentsOfFile:path];
NSLog(@"====%@", infoDic[@"HOST_URL"]);
image
-
xcconfig还可以修改Target中的设置,下列以Other Linker Flags举例
HOST_URL = www.debug.com
// OTHER_LDFLAGS 是 Other Linker Flags 的缩写
OTHER_LDFLAGS = -framework "AFNetworking"
image
【注意】
Xcode Build Settings更多缩写内容,可以通过这个网址查询地址
xcconfig文件冲突解决
使用自己的 xcconfig文件,运行pod install时,报错如下:
image
-
通过
#include引入其他 xcconfig文件
image
-
通过
#include导入的其他xcconfig文件,设置了一个配置,在自定义的xcconfig设置该配置,会覆盖导入的其他xcconfig文件的配置,此时需要添加$(inherited)(代表继承)
image













网友评论