应公司项目需要,需要同一份代码开发多个版本,之前不太了解,后来发现targets可以有多个,所以好奇心就驱使我看看能不能搞一搞拉!。
一 复制targets
先右键TARGETS-选择Duplicate-就可以出现一个新的ceshi copy.
ceshi copy和ceshi的设置(编译条件、源文件、资源文件)完全一样,此时你可以根据需要修改ceshi copy的编译条件和资源文件了,可以重新设置图标和启动图。

二 修改targets名字和代码中判断targets
选择manager Schemes


生成一个新的target,一定会与原target有区别,这里可以定义预编译宏,来区分两个版本的不同代码,预编译宏可以在Build Settings中Preprocessor Macros定义,比如在我们新建的target B中定义预编译宏MACRO,然后在代码中通过
#if defined (MACRO)
//targetB需要执行的代码
#else
//target A需要执行的代码
#endif
来区分
其他:Build Phases(各target编译所包含的内容,需要注意的是,如果创建了target B后,再往A里面添加资源或文件,target B中不会自动增加这些资源,需要手动添加)
网友评论