• iOS开发中如何创建多个target


    在开发iOS应用程序的过程中,经常需要根据不同的需求,切换到不同的项目配置,或者打不同的包(测试环境、开发环境、生产环境等等),如果每次都是手动配置,一则比较麻烦,二则容易配置错,那么有没有更好的方案来解决这个问题呢?答案是:有的。我们可以根据不同的需求,创建不同的target,在不同需求要切换配置或打包时,直接选择对应的target完成工作,从而提高我们的开发效率。

    创建多个target有两种方式,一种是创建多个info.plist的配置文件,另一种是拷贝整个工程所需的文件,如:源文件、资源文件、配置文件等等。下面介绍这两种方式的创建过程:

    方式一

    复制target

    首先复制target,然后在弹出的框中,选择Duplicate Only,即可复制一个target

    图1

    修改名字

    1.修改target的名字

    双击复制出来的target即可修改名字

    图2

    2.修改plist名字

    把复制出来的*** copy-Info.plist文件改成其它名字,然后在General的配置里面,重新选择target的配置文件

    图3

    3.修改scheme的名字

    选择Manage Schemes...,然后在目标scheme上门双击(具体是:单击一下,等3s再单击,如果快速双击,是无法进行名字的修改的),之后修改名字

    图4

    经过上面的修改,一个新的target就创建完成,之后我们可以修改Bundle IdentifierVersionTeam等,以及资源文件等。

    方式二

    方式二就简单许多,直接复制工程所需的文件,之后我们可以看到工程的根目录下面,会多出一个文件夹,里面的文件内容和工程是一样的,所以是一个独立的工程空间,包括:源文件、配置文件、资源文件等等。我们在新工程里面的修改不会影响到旧工程。

    图5

    图6


    根据上面的两种方案可以看出,第一种仅仅是创建了一个工程的配置文件,来实现多target的功能;而第二种是完全创建了一个新的工程目录,拷贝了之前的所有文件,之后的修改也不会影响到旧工程了,类似工程的备份功能。

    预编译

    在同一target下,我们也会需要不同的配置,如果都在代码里面进行判断,每次都要手动修改,也是比较麻烦的问题。针对这个问题,我们可以用预编译宏来解决。通常,target里会有一个Debug模式下的默认的宏:Debug=1,我们可以继续添加,或者直接使用这个宏来进行不同的配置。

    图6

    实例代码如下:

    #ifdef DEBUG
        #define BASE_URL    @"https://www.baidu.com"
    #else
        #define BASE_URL    @"https://www.chaoaicai.com"
    #endif
    

    通过以上配置,那么以后我们在切换开发和生产模式时,就不同再手动修改base_url了,是不是感觉爽的飞起。


    以上就是针对多target配置的介绍,如有不足之处,欢迎指出,共同进步。

    参考资料

    iOS开发多个Target的使用

    多个Target的使用

    如何在iOS项目中创建多个target?

  • 相关阅读:
    RocketMQ延迟消息的代码实战及原理分析
    如何做技术选型?Sentinel 还是 Hystrix?
    什么是服务熔断?
    降级-熔断-限流-傻傻分不清楚
    java-分布式-降级 熔断 限流
    java-分布式-分布式事务
    常用限流算法的应用场景和实现原理
    使用Redis作为分布式锁的一些注意点
    ansible {{}}引用变量,变量中嵌套变量如何表示
    shell获得java进程号跟进程对应的线程号
  • 原文地址:https://www.cnblogs.com/fishbay/p/7217032.html
Copyright © 2020-2023  润新知