美文网首页iOS 艾欧艾斯iOS开发iOS Developer
User Defined RunTime 属性的配置与使用

User Defined RunTime 属性的配置与使用

作者: 无忌不悔 | 来源:发表于2016-08-23 11:38 被阅读1640次

    User Defined 是一个Xcode中十分强大而不常使用的功能,它能够配置一些你在Interface Builder 中不能配置的属性,进而很大程度上提高开发效率。在项目中使用User Defined Setting可以定义一些Xcode编译使用的宏配置,为了实现App的一些常量或属性值在不同运行环境下配置不同,可以在User Defined Setting中定义一些有关应用程序的配置。

    • 应用场景

    1.实际开发中,对应于开发、测试、生产等不同环境,会使用多套域名,开发者在项目中设置User Defined,以达到域名因环境变化而不同的隔离效果;

    2.可以设置布尔类型的属性对应于不同环境,这样可以控制不同环境设置不同变量,甚至执行不同代码。

    • 配置步骤

    1.创建新的User Defined Settings

    在Xcode中选中TARGETS-->Build Settings选中上方导航栏Edior选项,下拉菜单Add Build Setting-->Add User Defined Setting;

    Xcode截图1

    或者直接在Build Settings下方菜单栏Levels右边点击+,即可创建新的User Defined Setting。

    Xcode截图2

    2.添加User Defined Setting内容

    为区分配置选项,可将配置环境分为:Debug、Release和add-hoc等,分别配置不同的字符串以提供在代码中根据环境不同替换达到自动生成的效果。

    Xcode截图3

    3.配置Compiler Flags

    此时必需告诉Xcode你需要在哪里引用User Defined Setting的属性值,指向的是哪一个User Defined Setting。在Build Phases中搜索你需要使用User Defiend Setting 的文件,然后给该文件加上Compiler Flags,以配置域名为例: -D'APP_SERVER_ID=@"$(server)"', 其中APP_SERVER_ID为宏名称,用来对应User-Defined Setting的名称即server。

    Xcode截图4

    Apple官方配置说明:Adding User Defined Runtime Attributes

    • 如何使用
      在选择的文件中,定义一个宏,宏的值即对应不同环境时User Defined配置值,在代码中引用宏,就可以做到自动根据部署环境替换相应配置了。
    Xcode截图5

    写在最后:设置的过程有些繁琐,比较容易忘记,因此要熟练掌握。这可以说是Xcode配置中的一个很强大的功能,设置一次就可一劳永逸啦~

    本文结合了笔者在Apple的官方文档和Stack Overflow上的爬坑所获,配置过程并不复杂,应用场景需要进一步探索,其功能之强大只有用过了才知道。如果对这篇文章有任何疑问,欢迎以评论或者微博的方式进行交流,希望对您有所帮助。

    相关文章

      网友评论

      • kai60:点赞,同一个.m文件 使用多个 user-define的变量可以么,怎么一个格式 求教自己没找到
        无忌不悔:@kai60 没有尝试过,如果你有这方面的需求的话可以试试看,应该是可以的,你可以参考一下官方文档

      本文标题:User Defined RunTime 属性的配置与使用

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