多targets使用
2018-12-13 本文已影响0人
水之飞亦
实际开发中,有时候会有多个相似app的情况,创建多个项目当然可以,但是还有更好的方案,那就是,多个app共用一套代码,通过创建多个targets来实现。
一:创建target
1.File->New->Target来新建
2.选中现有target,右键duplicate,选择duplicate only
![](https://img.haomeiwen.com/i3964987/f36673ae0a861122.jpg)
![](https://img.haomeiwen.com/i3964987/838f94678463fa82.jpg)
二:修改target名称
选中target,回车即可改名
三:修改target对应scheme名称
进入manage scheme,选中回车即可改名
![](https://img.haomeiwen.com/i3964987/5503d407ad43afb5.jpg)
四:配置Info.plist
最好修改info.plist的名称与target一致,这样以后也好区分
改名后的info.plist路径与原来的就不一致,这时,要重新指定其路径
![](https://img.haomeiwen.com/i3964987/6cf3deab15a8fb16.jpg)
五:其他
不同的target可以指定不同的bundle ID,app名称,包括证书等,当然也可以指定不同的资源文件Assets.xcassets
六:不同target间共用资源文件,代码
选择要共用的文件,通过勾选要共用的target,来实现文件共用
![](https://img.haomeiwen.com/i3964987/c6e234666375f72e.jpg)
当然,创建或者添加的文件也记得要选择哪些target使用
![](https://img.haomeiwen.com/i3964987/29a0e699b3e569f9.jpg)
七:不同target间差异化
两种方式:
1.通过不同的代码文件,资源文件来区别
这个就不用多说了
2.同一份文件代码中,通过变量来区别
这个其实也好理解,就是平常定义变量,那么通过这个变量来控制不同target的不同表现形式。
不过这里要说的是通过xcode来配置这个
![](https://img.haomeiwen.com/i3964987/bdfb01b330e5165c.jpg)
注意:一定要有"-D",然后后面是自己定义的宏
那么代码中就可以使用了
#if app_black
let app_color : UIColor = UIColor.black
#elseif app_orange
let app_color : UIColor = UIColor.orange
#elseif app_blue
let app_color : UIColor = UIColor.blue
#else
let app_color : UIColor = UIColor.black
#endif