由于项目需求,同一项目需要发两个版本,两个版本只有小部分不同,记录下文
1.创建Target
点击左侧的工程名称,右侧会出现PROJECT和TARGETS,点击你现在的target,假如叫MRobot,右键弹出菜单中,选择Duplicate,复制一个相同的target,复制的target一般叫MRobot copy,MRobot copy和MRobot的设置(编译条件、源文件、资源文件)完全一样,此时你可以根据需要修改MRobot copy的编译条件和资源文件了;
2.改名(3个地方)
target下方双击改名。build settings中product name 改名。manageschemes 中选中改名项目双击改名。
3.新target需要的.plist文件
一般新生成target的同时也会生成相应的plist文件,在project的根目录里面,你可以删除这个plist文件,重新赋值原有的plist文件,重新命名,然后再general中选中相应的plist文件,build settings 中修改相应 Info.plist File 的目录(相对路径), [Prefix Header的路径,视具体需求而定是否要修改,如果两个target可以公用同一个Prefix Header,那么就不需要修改这里的路径]
4.新旧target的区分
这里可以定义预编译宏,来区分两个版本的不同代码,预编译宏可以在Build Settings中Preprocessor Macros定义 MRobot TARGET_VERSION_MROBOT=1 表示原先的版(注意=前后不能右空格,有空格会编译不过),程序中对不同版本这样判断:
#if TARGET_VERSION_MROBOT ==1
...
#elif TARGET_VERSION_MROBOT ==2
...
#endif
5.添加文件注意点
注意每次添加第三方库或者新建文件时一定要注意选中 所有app的target 在create之前,每次修改任何plist或者build settings中内容时都要双方修改
或者在buildPhases->compile scources->在这里面添加相应的.m文件 , 在copy bundle resources 添加相应的库文件