美文网首页my iOS
xcconfig 编写指南

xcconfig 编写指南

作者: differ_iOSER | 来源:发表于2021-02-04 17:18 被阅读0次

    目录



    xcconfig 文件的语法比较简单,每个配置文件都由一系列键值分配组成,这些键值分配具有以下语法:

    BUILD_SETTING_NAME = value
    

    注释

    xcconfig文件只有一种注释方式\\

    include导入其他xcconfig文件设置

    在创建xcconfig文件的时候,可以根据需求,创建多个。也就意味着,可以通过include关键字导入其他的xcconfig内的配置。通过include关键字后接上双引号:

    #include "Debug. xcconfig"
    

    在搜索引入的文件时,如果是以/开头,代表绝对路径,例如:

    // 表示确切的文件位置
    #include "/Users/ztkj/Desktop/TestCode/Pods/Target Support Files/Pods-TestCode/Pods-TestCode.debug.xcconfig"
    

    或者通过相对路径,以${SRCR00T}路径为开始:

    #include "Pods/Target Support Files/Pods-TestCode/Pods-TestCode.debug.xcconfig"
    

    变量

    变量定义,按照OC命名规则,仅由大写字母、数字和下划线(_)组合,原则上大写,也可以不。字符串可以是"也可以是号。
    变量有三种特殊情况:

    1. xcconfig中定义的变量与Build Settings的一致,那么会发生覆盖。可以通过$(inherited),让当前变量继承变量原有值。例如:
    OTHER_LDFLAGS = - framework SDWebImage
    OTHER_LDFLAGS = $(inherited) -framework AFNetworking
    // OTHER_LDFLAGS = - framework SDWebImage - framework AFNetworking
    

    注意⚠️: 有部分变量不能通过xcconfig配置到Build Settings中,例如:配置PRODUCT_BUNDLE_IDENTIFIER不起作用。

    1. 引用变量,$()${}两种写法都可以:
    VALUE=DIFFER
    NAME=$(VALUE)-${VALUE}
    
    1. 条件变量,根据SDKArchConfigration对设置进行条件化,例如:
    //指定Configration'是、Debug'
    //指定SDK是模拟器,还有iphoneos*、 macosx*等
    //指定生效架构为、x86_ 64
    OTHER_LDFLAGS[config=Debug][sdk=iphonesimulator*][arch=x86_64]= $(inherited) -framework "differ"
    

    注意⚠️: 在Xcode 11.4及以后版本,可以使用default,来指定变量为空时的默认值:

    $(BUILD_SETTING_NAME:default=value)
    

    优先级(由高到低):

    1. 手动配置Target Build Settings
    2. Target中配置的xcconfig文件
    3. 手动配置Project Build Settings
    4. Project中配置的xcconfig文件

    相关文章

      网友评论

        本文标题:xcconfig 编写指南

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