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

在相同主机上如何配置子域名

这个需求是这样的,我要开一个后台请求,域名要和blog的域名不一样,这样可以多个请求域名,便于请求分离,域名定为api.hite.me。 到现在为止,api.hite.me,配置成功了,但是走了好几个弯路。我先写下如果正确的配置的路径,路上遇到的错误的坑,后面会提到我的坑。 首先,新建一个conf文件,简单的方式是 copy一下默认的000-default.conf,重命名为wwwroot.conf,新增一条ServerName api.hite.me,表明是这个域名;修改 DocumentRoot /var/www/html 表明服务器文件存放的地址是 /var/www/html。 这里有个需要说明的是,这里配置的是基于域名的虚拟主机,还有另外一个配置虚拟主机的方式是基于ip的虚拟主机,两者的区别在于是否有独立ip,有独立ip是基于ip的虚拟主机,详见Apache wiki 配置完毕之后,运行sudo a2ensite wwwroot.conf,然后这样sites-enabled下面我们需要的配置就启用了。网上其他的文章里接着会介绍如何设置本地的域名,配置hosts,但实际上我是需要在外网访问。rackspace上的文章介绍的很详细,见这里 重点是如何配置api.hite.me的子域名。我的主域名在godday,但是我在godday上没看到配置子域名hosts,然后到腾讯云上的云解析,使用了分配子域名至项目,新建一个协作子域名,配置这是最简单一个功能,但是在腾讯云上 起的名字 太费解了。 配置好一个A记录,过来几秒之后,就可以解析了。值得注意的是,这个虚拟主机是不响应.htaccess的配置的。 完。

Read more

我的博客重生二三事

认识我的人可能知道我的旧blog的遭遇,因为我以前用的是000webhost免费的主机,没有流量本来就没有做什么宣传,带宽、CPU、磁盘都基本没有用什么,但是被000webhost认为是abuse 使用,提示让我升级到他们的premium服务。但是我没有理会,一周之后,居然直接将我的数据删除了,写了好多的ticket反馈,投诉无果,也是无奈接受数据丢失的现实。 幸好,我在他们后台曾经备份过数据库,从各种邮件里翻出来了最后一份、也是唯一一份的的备份,看了下是2014年3月6日的备份,而000webhost删除我的服务是2015年10月,中间丢了一些东西,不过那段时间,我没有写什么东西,一部分写在了163的Blog上,一部分写在了Facebook上面、还有就是后面的LOFTER ,也就没有深究。 再以后域名续期之后,看国内没有免费稳定的host,国内大一些的服务商还需要域名备案,有些麻烦而且还对备案很反感,所以一直在app里作为默认测试地址的hite.me这个地址一度失效了,打不开。 今年春节过后,忙完了婚礼,接着一家人去了九寨沟,回来接着上班,其实也没有多少的时间来整理这一整年的事情。最近搞翻墙的事情,随便买了腾讯的主机,来了兴趣要搞RESTapi,正好复活下我的blog,也下定决心去备案,为以后自己的其他打算先试试水,现在网站是起来了,但域名还卡在备案部分,事情暂时告一段落,但是网站起来的过程还是比较波折,很合我这两年的心境和感悟,所以决定写下来,以备后续。

Read more