在XCode中跟踪编译次数

来源:互联网 发布:傣族语言翻译软件 编辑:程序博客网 时间:2024/06/05 10:13

这篇文章适合单独做项目的群众们:)。有时候你希望跟踪你的项目到底编辑、编译、运行和测试了多少次。当你开发了一两个程序的时候,如果有了这个跟踪数据,你可能就会得出一个比较明显的数据,到底对你来说做出不错的软件大概需要多久。

 

本文作者是Matthieu Cormier,原文地址是

http://sunflower.coleharbour.ca/cocoamondo/

 

如果你希望看到更多关于Cocoa的中文内容,欢迎你访问Cocoachina网站。

 

概述

 

你的时间不是无限的,知道你做一件事情花了多少时间是很重要的。下面将要告诉你的是如何通过在项目中添加一个自动增长数目的运行脚本去跟踪你的项目。脚本会生成一个.xcconfig文件,我们可以用它直接将你做这个项目编译的次数显示到“关于”对话框里。

 

你项目中的一些数据

 

我最开始用这个技巧是通过 Laugh Man(cocoachina注:看过攻壳你就知道这个笑脸是哪来的了)来实现的,不过0.5版之前我并没有开始使用这个方法

 

 

用过Laugh Man,我开始用SunFlower,这次我从项目的最开始就开始跟踪编译数据。以下是从0.1版到0.9版的跟踪数据。

 

 

 

我发现这个数据是非常有用的。因为我可以判断出代码行间的不同与在那个版本中修改了什么的差别。一方面,我可以判断出版本的提升付出了多大的代价,是否真的有用,同时还可以帮我大概估计出我的工作能力是否有提升。

 

 

你可能会注意到通过SunFlower生成的上面的数据,你会发现0.5和0.8版编译的次数明显多的多。这样我就知道为什么这两个版本为什么编译了那么多次。比如0.8版,我介绍了iTunes风格的那种滚动条,这样就花费了我不少工作来完善它。

 

自动增加版本号的Shell脚本

 

我们需要的第一件事是自动增加我们编译的次数。下面的脚本可以帮我们做这件事。它需要一个参数,是用来保存当前编译次数的文件。这可以允许我们使用同一个脚本来管理多个项目。

#!/bin/bash # # buildIncrementer   #  — a simple script to increment the  #      build number through Xcode # if [ -e "$1" ] then   echo " do nothing" > /dev/nullelse   # creat an empty file   touch $1 fi   #increment the build number read number  < $1 let number++echo $number echo $number > $1

 

 

我把这个脚本保存到了我主目录的bin目录,取名叫做buildIncrementer。你也可以把这个脚本保存到你电脑上,取一个你喜欢的名字。

 

将脚本添加到项目中

 

要在XCode中使用这个脚本,我们需要在项目中添加一个运行脚本阶段(run script phase)。右键点击你希望使用的项目,选择Add -> New Build Phase ->New Run Script Build Phase

 

接下来选择在新创建的Build Phase里选择Get Info,修改脚本,使其看起来像下面这样:

 

 

现在在XCode里运行程序,就会自动执行这个脚本。脚本会自动在你的项目目录中创建.xcconfig版本文件。你可以在文本编辑器中查看这个version.xcconfig文件。内容大概是:“CURRENT_PROJECT_VERSION = 1”。

 

在关于对话框中添加编译次数


我们得到了编译的次数,如果能够在关于对话框中加入这个数字那就很好了。我们需要做的第一件事情是在项目中添加version.xcconfig文件。

 

当你增加了自动生成的.xcconfig文件,你需要修改项目的编译设置,这样项目会基于那个文件编译。在项目中选择“Get Info”,然后选择Build。将配置设置为“All Configurations”,然后在Based On下拉框中选择version。如图所示。

 

 

最后,编辑info.plist文件,这样,CFBundleVersion会使用${CURRENT_PROJECT_VERSION}这个数值并增加一个CFBundleShortVersionString。

 

<key>CFBundleShortVersionString</key> <string>0.1</string> <key>CFBundleVersion</key> <string>${CURRENT_PROJECT_VERSION}</string>

 

 

另外,很重要的一件事需要提醒你注意的是你必须清理一次项目,最新的版本号就会显示在关于对话框里。这是由于只有在需要的情况下XCode才会重新生成info.plist文件。

 

 

如果你不会设置,你可以从这里下载包含了上文描述内容的例子项目。