美文网首页
IOS多Targets + Configurations + x

IOS多Targets + Configurations + x

作者: SnailLi | 来源:发表于2020-03-16 13:12 被阅读0次

    在开发过程中,一般会有开发环境、测试环境和生产环境,为了方便起见,多Targets是一个不错的选择,下面就总结一下我的经验。

    1、创建多Targets
    在TARGETS下的工程鼠标右键选择Duplicate进行复制


    image.png

    分别创建project_pro(生产环境)、project_dev(开发环境)、project_test(测试环境)(第一步的框框)


    image.png

    与此同时会同步创建了相对应的Info文件(第二部的框框)

    修改Info文件名与Target名字相对应


    image.png

    修改Info的路径
    对应的target要添加对应的info,最好用相对路径($(SRCROOT))


    image.png

    修改scheme里的target名称。 选择"Product"->"Scheme"->"Edit Scheme"


    image.png image.png

    创建xcconfig


    image.png

    记得勾选所有的targets


    image.png

    分别创建与target对应的xcconfig


    image.png

    每个文件代码的写法:

    Config. xcconfig的写法
    GCC_PREPROCESSOR_DEFINITIONS = (inherited) API_URL='(API_URL)'

    image.png
    解析如下:
    其作用是将配置文件中定义的常量定义成预编译宏,以便于在代码中获取。
    GCC_PREPROCESSOR_DEFINITIONS 是 GCC 预编译头参数,对应的设置在 Xcode8下的路径为 Build Settings->Apple LLVM 7.x Preprocessing->Preprocessor Macros,就是我上面提到的设置预编译宏,这里权且可以理解上面这一串代码是在Build Setting中设置预编译宏的代码化,而这里的设置并不会覆盖之前在Build Setting中的设置,只会将这些新增的设置添加到最后面。 上面代码的意思是,定义两个预编译的宏名字分别为VariableA、VariableB,他们具体的值就可以在不同的xcconfig中去设置,不同的xcconfig需要导入这一个Common. xcconfig的文件,这就实现了不同环境下动态的配置,不同环境下的预编译宏名一样只是值会不一样,而且这些xcconfig文件可以在不同的项目中使用。
    这样就可以简单的理解为Common. xcconfig实现了一个Build Setting里面的一个方法,而其他的xcconfig文件调用这个方法进行具体设置。
    上面在Preprocessor Macros中配置的用于在代码中区分不同环境的预编译宏,也可以直接在Common. xcconfig中设置,只是在代码中进行区分就要区分不同宏的值了。

    其他xcconfig的写法:
    如果用了Pods 如图下1的路径要和2的路径一致


    image.png

    其他的xcconfig的API_URL写上相对应的url或者其他的一下值

    将xcconfig与环境进行关联:
    我们来到工程下的info->Configuration,各自选择对应的xcconfig


    image.png

    然后运行不同的targets就会获取到不同的xcconfig信息


    image.png

    参考资料
    https://www.jianshu.com/p/c9ae94162e27?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
    https://www.cnblogs.com/wangkejia/archive/2018/09/14/9647988.html
    https://www.meiwen.com.cn/subject/fxeujqtx.html

    相关文章

      网友评论

          本文标题:IOS多Targets + Configurations + x

          本文链接:https://www.haomeiwen.com/subject/avwwehtx.html