Project:包含了项目所有的代码,资源文件,所有信息。
Target:对指定代码和资源文件的具体构建方式。
Scheme:对指定Target的环境配置。
不同项目,不同的需求,不同的场景。我们可以同过多Target配置,解决同一份代码对应不同APP的需求。多Scheme配置,可以解决同一个APP在不同场景下运行,比如debug,release等。Scheme+xcconfig配置,通过文件形式进行APP的配置,达到解耦作用。下面是一些操作案例:
多Target配置:
创建一个新的Target后,所需修改的地方
Target-图1.jpg Target-图2.jpg Target-图3.jpg使用场景:
首先通过不同的Target我们可以用同一套代码,创建不同的AppIcon,不同的Bundle identifier,等其它不同的配置,如下图 图一.jpg 图二.jpg 图三.jpg我们也可以使用宏判断:
宏-图1.jpg 宏-图2.jpg 宏-图3.jpg 宏-图4.jpg多Scheme配置: 新建Configurations.jpg
新建Scheme-图1.jpg 新建Scheme-图2.jpg 修改Scheme配置.jpg 配置不同环境的链接.jpg 绑定到info.plist上.jpg 效果图1.jpg 效果图2.jpgScheme + XConfig配置
首先我们在工程中创建一个Config文件夹,里面创建2个想xcconfig文件,然后去PROJECT --> Info --> configurations 中根据不同环境关联不同xcconfig文件。这里的xcconfig和Pods生成的文件一样。
创建Xconfig并关联.jpgxcconfig命名规则可以是 文件名+项目名+环境名
这一步可以操作,也可以不操作。直接进demoThree里面切换环境,这里方便演示创建2个不同环境。 创建不同Scheme.jpg 修改Scheme配置.jpg 把xcconfig里面的内容和Info.plist进行绑定 绑定到info.plist上.jpg
在不同Scheme下运行的结果:(报错是找不到AFNetworkingAA,注释就可以) 运行结果.jpg
查看Build Settings我们可以知道,通过xcconfig可以修改Build Settings中的配置。
查找Build Settings里面配置缩写的网址:https://xcodebuildsettings.com/
最后项目中是使用Pods管理三方库的话,这里新增的xcconfig会和Pods里面的xcconfig产生冲突。解决方法是,在新增的xcconfig里面用#include
引入Pods的xcconfig文件
#include "/Users/XXX/Desktop/XXX/Pods/Target\ Support\ Files/XXX/Pods-DIAgent.debug.xcconfig"
网友评论