XCConfig不完全指南

先写结论,XCConfig file的目的是供XCode在编译期间,对xcproject文件做变量替换的文件。 如在dev.xcconfig里定义了MIF_APP_NAME = 装修宝测试,那么在project – > General (tab) – > Identity 里使用变量${MIF_APP_NAME}。 注意:这个选项的下面Bundle Identitier 里是无法使用相同的方式使用变量的(原因待查),如果需要设置APP ID的属性,去project – > Build settings (tab) – > Packaging里找到PRODUCT_BUNDLE_IDENTIFIER设置即可 //:configuration = Debug PRODUCT_BUNDLE_IDENTIFIER = ${MIF_APP_IDENTIFIER} //:configuration = Release PRODUCT_BUNDLE_IDENTIFIER = ${MIF_APP_IDENTIFIER} //:completeSettings = some PRODUCT_BUNDLE_IDENTIFIER 1. 设置xcconfig文件的步骤 XCode原生就支持使用XCConfig file来对不同的编译对象做区分,所以分了两组:Debug和Release,当然你还可以创建额外的配置文件。 […]

Read more

主题测试自动化:Fastlane篇

行文的主要目的是展示如何用fastlane工具,做多主题在多设备上的测试任务,所以不会对fastlane做全面系统的介绍。但如果在自动化任务中用到fastlane相关技术点,重要的细节、坑或者最佳实践,会在相应的步骤特别的说明。 文章大纲 Fastlane概述,包括fastlane的前世今生 如何使用Fastlane实现主题测试自动化,步骤分解 定制输出结果,编写Fastlane的action Fastlane使用的注意事项 ##1. Fastlane概述 Fastlane 作者Felix Krause,于2014年创造了fastlane项目,一年后的2015年被fabric收购,在此之前的2014年,fabric被Crashlytics收购,而Twitter则在2013年收购了Crashlytics。自2015起,作者一直在Twitter开发fastlane,直到2017年Google收购了fabric,现在在Google全职开发fastlane。 从履历上看,fastlane的背后有强大的公司支持和实践,近年来发展势头很好,更新迭代很快。(在前段时间iTunes更改了后台登录的验证方式之后,fastlane团队第一时间获取信息,发布了公告,并在一周内fix)。 fastlane内置了很多常用的actions,如snapshot、deliver、gym等,可以满足大部分场景下的需求,详细用法可在官网查看。 事实上,我们可以自己编写actions,那么fastlane内置的actions和我们自定的actions有没有区别呢? fastlane内置的action的特殊之处 fastlane内置的action,可以直接在命令行里直接运行,如fastlane snapshot,而自定义的action,如后文提到的resort_screenshot,如需在命令行运行,需要使用语法fastlane run resort_screenshot 内置action有相应的配置文件,如snapshot相应的Snapfile,定义了action需要的参数。(事实上fastlane本身也有一个配置文件Fastfile) 假设,你在Fastfile(fastlane的配置文件)里创建了一个和内置action重名的lane如snapshot,则fastlane snapshot命令读取到的是内置action,而不是作为lane的snapshot 和actions相关了两个命令,如下: fastlane actions # list all available fastlane actions fastlane action [action_name] # more information for a specific action Fastlane本质上是一系列符合Fastlane规范工具的执行环境。这些工具处于fastlane的管理之下,可以使用fastlane的全局变量、credentials_manager、上游action的输出等数据。fastlane对编写action时,经常使用的组件或util,做了简单的封装,使每个action的行为表现保存一致。如在控制台输出错误提示信息时,可以使用以下语法 puts “Must name […]

Read more