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截图22.添加User Defined Setting内容
为区分配置选项,可将配置环境分为:Debug、Release和add-hoc等,分别配置不同的字符串以提供在代码中根据环境不同替换达到自动生成的效果。
Xcode截图33.配置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截图4Apple官方配置说明:Adding User Defined Runtime Attributes
- 如何使用
在选择的文件中,定义一个宏,宏的值即对应不同环境时User Defined配置值,在代码中引用宏,就可以做到自动根据部署环境替换相应配置了。
写在最后:设置的过程有些繁琐,比较容易忘记,因此要熟练掌握。这可以说是Xcode配置中的一个很强大的功能,设置一次就可一劳永逸啦~
本文结合了笔者在Apple的官方文档和Stack Overflow上的爬坑所获,配置过程并不复杂,应用场景需要进一步探索,其功能之强大只有用过了才知道。如果对这篇文章有任何疑问,欢迎以评论或者微博的方式进行交流,希望对您有所帮助。
网友评论