iOS 新建Target实现同一份代码编译多个定制app

新建多个Target

一, 新建多个Target的用途

公司的一个新需求,需要在原有的企业版app基础上,新做一个用户版的app。由于两个app大部分内容很相似,而且有一个共用的业务模块。
大概情况如上,而痛点如下:

  • 虽然大部分内容一开始相同,但后面分歧会越来越大,毕竟是两个app,各有各的业务,所以这大部分相同的代码,将会被拷贝成两份代码。
  • 共用一个业务模块。在第1个痛点的时候,我们已经把不共用的代码拷贝成两份了,如果共用模块也拷贝两份代码的话,那以后共用模块出现修改的话,就需要在共用模块的两份代码都修改一遍,容易出错。
  • 共用模块也会出现小部分的两个app不同的业务处理。

针对以上三个痛点,新建一个target正好可以解决这几个问题。

二, 新建Target的方法

方法一:复制target

在已有的target上,已有target–>右键–>Duplicaate–>Duplicaate Only。
在这里插入图片描述
复制成功后,工程目录下会出现copy-Info.plist文件。此方式新建的新target保留了被拷贝的target全部配置和文件引用,只需稍作修改就能生成一个新的app(比如修改包名、图标和启动图之类的)。

方法二:新建target

通过菜单–>Editor–>Add Target–> Application --> Singe View Application --> Product Name

在这里插入图片描述

新建成功后,工程目录会出现新target目录,里面会包含以下文件
在这里插入图片描述
此方法新建的新target将不保留被拷贝的target全部配置和文件引用,相当于一个全新的app(Singe View Application)。

三、不同的target作用

每个Target都包含了Copy Bundle Resources, Compile Sources, Link Binary With Libraries、info.plist等,对不同的app进行管理。
不同target对应的资源文件

其作用如下:

  • Copy Bundle Resources 是指生成app后里面所包含的资源文件,比如图片。

  • Compile Sources 是指哪些源代码会被该target引用编译。

  • Link Binary With Libraries 是指引用哪些库文件。

  • info.plist,这个应该都是知道是比较重要的,比如包名、版本号和权限之类的。

四、通过创建新Target来实现同一份代码克隆出多个定制版本app

使用 copy target方式克隆

通过对原有的target做duplicate(duplicate only),复制一份。其好外:如果两个target的相同点很多,用duplicate,就可以把相关的设置全部拷贝过来,而不需要做 过多的修改,生成一个新的target。

1、复制工程中的其中一个Target(如果工程中有多个target、复制最相似的target,这样Info.plist文件的不需要过多修改)

在这里插入图片描述

一个新工程默认target名与工程名一样
对原target(如果项目中以有多个target,可以选中最相近target进行复制,这样可以减少相对少量的设置)上右键如下图所示

在这里插入图片描述

点击Duplicate(复制),也可快捷键Command+D,弹出如下
在这里插入图片描述

一般选中中间那个Duplicate Only(仅复制),默认选中是复制且过渡到iPad,看你需要进行选择, 本文现在只讲解仅复制。选中后如下图
在这里插入图片描述
会生成两个文件,其名称命名规则为被copy 的Target Name 再加上“ copy”(空格加copy)邚TargetTest copy(target文件)、TargetTest copy-Info.plist(plist文件)。

2、修改Target文件名称及与之对应的Scheme

在这里插入图片描述

在这里插入图片描述

如上图:1.修改后,点击其它文件,再切换回来(点击MyTargetTest),会发现2、3 显示名称、及Bundle Id也自动修改了。但4的该新Target对应的Scheme名没对应改过来,那就来修改它,然后点击Manage Schemes(管理所有Scheme),弹出下图

在这里插入图片描述

点中要修改的Scheme (此时左下角的“-”删除进入可选状态,即可对scheme进行删除),再左键单击,使其进入可编辑状态,即可进行修改(建议改成与相应target文件的名称,防止不必要的错误和麻烦)。修改完成后,点击close,相应的Scheme名称已修改完成。但bundleId 还是没修改

在这里插入图片描述

3、配置Info.plist

大致操作:修改名称后,需要Build Settings里修改Info.plist的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值