在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文件。
如果你不会设置,你可以从这里下载包含了上文描述内容的例子项目。
- 在XCode中跟踪编译次数
- 如何在xcode中进行依赖性编译
- 在XCode中自定义编译宏
- 解析在Xcode中进行条件编译
- 在xcode中编译APUE代码
- 在Xcode中编译FreeType和FTGL库
- 在xcode中编译和调试webkit, V8和Nodejs
- 在xcode上编译lua
- Xcode中编译报错
- Cmake编译OpenCV和如何在VS工程中配置来使用编译后的OpenCV进行跟踪调试问题
- 在Mac OS X 10.9.4 Mavericks编译boost 1.55,并在xcode中使用.
- 在cocos2d-x中编译/调试curl库 xcode中添加curl库
- 在Leopard中编译搭建非官方iPhone toolchain开发环境并整合到XCode
- iPhone开发中,在XCode下混合编译C++/Objective-C
- 在Xcode中如何屏蔽某个源文件的编译警告信息
- 在xcode中编译新建的cocos2d-x项目不运行模拟器
- Phone开发中,在XCode下混合编译C++/Objective-C
- [IOS]在xcode开发编译环境中@property关键字的理解
- 【木头Cocos2d-x 009】游戏实例-《跑跑跑》制作教程(第一篇)——加载地图
- DirectDrawEnumerateEx 用法
- VB6升级到VB2010之十四:与运算和逻辑运算判断失误导致升级出错~
- 数组--排序--组成最大数
- 实习日志(15):SQLServer与MySQL语句的一些区别
- 在XCode中跟踪编译次数
- java学习 第四节 简单java程序解析
- 谈谈苦逼这件事
- 在iOS中让图片旋转时抗锯齿
- zoj 1610 Count the Colors(线段树,成段更新染色)
- sqlserver里面获取日期的不同格式
- 一个关于dual的问题!!!
- Asp.net中的VS2010中的ashx文件,【转到定义】失效的解决方法!(终于找到原因了)
- Content-disposition","attachment; filename=中文名 乱码