iPhone App 开发

iOS 同一个项目,多个target

2019-02-28  本文已影响0人  一页清风

需求:当需要一个工程对应不同的状态时,比如正式、开发、测试等,可以创建对应的target来区分操作。

可共用同一个文件,也可以使用独立的文件(如Info.plist文件等)。

方式共分两种,闲话不多说,来看生成target 具体步骤:

第一种是通过对原有的target做duplicate(duplicate only),复制一份。优点在于:如果两个target的相同点很多,用duplicate,就可以把相关的设置全部拷贝过来,而不需要做 过多的修改,生成一个新的target。(适用于已经存在或已经码了很多文件的情况下)

1、复制工程中的其中一个Target,这时会自动给你创建一个新的 target和 对应的 info.plist 文件:

2、该相应的文件名,以符合我们的命名需求,首先改target下的名字(我改为了Practice_01_dev);然后改plist文件(InfoDev.plist,根据自己需求命名即可);然后在工程文件处选择 Manage Schemes更改命名 :

此时因为plist文件已经重命名,所以需要我们重新指向对应的target,选择对应的target,general,choose Info.plist File,完成指向:

3.区分不同的target,选择要操作的target ->Build Settings,搜索swift flag,找到Active Compilation Conditions下的 other swift flags,双击,在弹出的信息框中添加区分信息(输入-D + "自己定义的名称"。):(-DPRACTIVEDEV),对应的在代码中就是PRACTIVEDEV,(Swift工程中设置Other Swift Flags,由于swift取消宏定义所以在macros那边设置无效 ):

4、以上基本就完成操作了,下面在代码中进行区分:

当我们运行 Practice_01和 Practice_01_dev 时,打印的分别是:

以上是第一种操作的流程!

第二种,是通过新建target可以通过File-->New-->Target,然后选择其中一个模板来创建,app类型的target,不过新建的target有自己的AppDelegate和main,所以为了方便统一管理需要吧新建的AppDelegate和 main等文件删除(保留Info.plist 文件),Info.plist文件可以根据需求重命名,然后在重新指向新的target(方式可参考第一种中的方法),删除后选择原来的target的文件 在右侧的操作栏中 target Membership 中勾选新的 target(即新的target也运行使用该文件,需要全部操作)。然后在代码中区分方法和第一种一样;

注意:因为这种方法需要所运行的每个文件都要执行target Membership的勾选操作,所以如果针对已经编写了很多文件的工程会比较麻烦,适合于刚创建的工程:

上一篇 下一篇

猜你喜欢

热点阅读