Xcode添加多个Targets
2019-12-03 本文已影响0人
Bricklayer9527
前言
- 开发过程中,一个项目可能会有两个端,商家端和用户端,两个端之间大部分内容是相同的,可能有一两个模块是不同的,还有App名字、图标、启动界面等也是不同的;又或者,同一个App会有多个环境,一个开发环境,一个测试环境,一个生产环境,为了区分需要显示不同的App名字、图标等。这时候可以使用多个Targets来进行管理。
- Xcode11.2.1 + Swift
新建Target
- 新建一个项目或者打开已有的项目。
- 新建Target,如图,选中LamDemo,右击选择Duplicate。然后会生成一个 “LamDemo copy-Info.plist”文件和一个Target “LamDemo copy” 。 截屏2019-12-03下午3.48.50.png
- 修改“LamDemo copy”,我这里改为“LamDemoSeller”。
- 修改“LamDemo copy-Info.plist”文件名,我这里改为“LamDemoSeller.plist”。注意,这里改完之后,还需要关联一下,否则运行报错找不到文件。如图。 截屏2019-12-03下午4.03.46.png
根据Target显示不同的App名字
- 选择LamDemoSeller > 修改App名字,如图。 截屏2019-12-03下午4.23.18.png
根据Target显示不同的图标
-
新建App Icon,如图。
截屏2019-12-03下午4.28.32.png - 得到“AppIcon-1”,然后将它改名为“AppIconSeller”。
-
最关键的一步,要把 Asset Catalog App Icon Set Name 的值改为第2步的名字,如图。
截屏2019-12-03下午4.32.24.png
根据Target显示不同的启动图
- 新建LaunchScreen,并将它命名为“LaunchScreenSeller.storyboard”
- 然后关联,如图。 截屏2019-12-03下午4.45.26.png
根据Target使用不同的代码
-
给Target定义一个Flag,如图。
截屏2019-12-03下午5.00.52.png -
在代码中使用。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print("共用的代码可以写在这里")
#if SELLER
print("商家端的代码可以写在这里")
#endif
print("共用的代码可以写在这里")
}
}
切换Target运行或者打包
-
如图。
截屏2019-12-03下午5.20.57.png
Demo下载
- 百度网盘传送门
- 密码: l7vj