欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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
Xcode同一Project创建多个target
1.png
  • 在原来的target上右键,选择duplicateXcode会复制一个名为targetTestDemo copytarget对象,(如上图),同时会生成一个targetTestDemo copy-info.plisttargetTestDemo copyscheme。选择复制之后如下图:
Xcode同一Project创建多个target
2.png
  • 箭头所指的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:
    Xcode同一Project创建多个target
    3.png
  • AppDelegate.m中加入条件判断语句:
#if defined (MACRO)
//target  B需要执行的代码
 #else
//target A需要执行的代码
 #endif

在使用的时候根据宏定义的条件选择来选择对应APP需要处理的具体业务逻辑内容。通过如上设置就可以用一份代码生成两个不同的APP了。