Xcode同一Project创建多个target
程序员文章站
2024-03-15 13:57:53
...
写在前面
新年回来,终于迎来了新项目,由于我们开发的APP主要用于自己家公司员工使用的,所以呢,需求要求新开发的APP需要根据员工的职能的不同使用对应的APP,两个APP界面相同,只是为了区分不能职能,具体就不细说了,当时想,这需要做两个APP嘛?就算copy的话也挺麻烦的啊,不偷懒的程序猿不是好程序猿,哈哈哈,这时我同事一句话提醒了我:target
。
利用Xcode的target创建两个APP
既然是两个APP的界面是一样的,那么就简单很多了,简单的来说就是创建一个新的项目之后,通过对原有的target做duplicate,复制一份,那接下来就记录一下通过duplicate新建target的方法。
- 假设原来的
target
名字为targetTestDemo
,我们需要新建一个targetTestDemo2
。
- 在原来的target上右键,选择
duplicate
,Xcode
会复制一个名为targetTestDemo copy
的target
对象,(如上图),同时会生成一个targetTestDemo copy-info.plist
和targetTestDemo copy
的scheme
。选择复制之后如下图:
- 箭头所指的plist文件是与新生成的target对应的文件,需要更改两个target对应的
bundle name
,选中这个Target-info-plist name
。更改图标就在Images.xcassets
中上传两套图标,选中Target-Gernal-App Icons and Launch Images
进行选择。这样两个APP的名字和icon
就都不一样了。 - 那么怎么在编写程序的时候区分这连个APP呢?那就是编写预编译宏,用来区分两个
Target
。选中Target-Bulid Settings-Preprocessor Macros
分别给俩个Target添加两个预定义宏First=1、Second=1: - 在
AppDelegate.m
中加入条件判断语句:
#if defined (MACRO)
//target B需要执行的代码
#else
//target A需要执行的代码
#endif
在使用的时候根据宏定义的条件选择来选择对应APP需要处理的具体业务逻辑内容。通过如上设置就可以用一份代码生成两个不同的APP了。