RSS

Monthly Archives: 四月 2012

You have not agreed to the Xcode license agreements的解决方案

最近使用Jenkins做iOS项目的CI时,遇到了下面的问题:

You have not agreed to the Xcode license agreements, please run xcodebuild standalone from within a Terminal window to review and agree to the Xcode license agreements.

但是按照提示在Terminal中去运行xcodebuild又没有任何问题,用xcodebuild –help发现有一个option是-license。

输入xcodebuild -license会展示一大段的license,空格键是查看更多,耐心看完之后,根据最后的提示,输入agree。注意保证agree前面没有空格,有可能空格键按得太快会打几个空格出来的。

再去Jenkins做build就不会出现上面的问题了。


 
添加留言

Posted by on 四月 25, 2012 in iOS&Mac OS&Objective-C

 

Tags: , ,

如何搜索xib文件中的字符串

使用Xcode做iOS开发的时候有时会用到xib文件,但是在Xcode中检索字符串时,xib文件似乎并没有被包括在内。而且在Finder中搜索的时候,xib文件似乎也没有被当作文本文件,无法检索。xib本质上还是xml格式的文本文件,所以当我们有这个需求的时候,只需要打开Terminal,使用grep命令如下:

grep -r --include=*.xib "search text" path

-r表示recursive,会递归搜索子目录中的所有文件
–include=*.xib表示只包括后缀为.xib的文件
“search text”表示要搜索的文本
path表示目标路径

 
添加留言

Posted by on 四月 21, 2012 in iOS&Mac OS&Objective-C

 

Tags: ,

Mac OS X中打zip包时去除.DS_Store等指定文件

在Finder中的Compress “…”很好用,但是也有烦恼的时候,经常打包会包含进来一些.DS_Store文件,.DS_Store是苹果系统中保存当前目录基本信息的文件,包括图标的位置,显示方式等信息。每一个目录都会有,类似windows平台的destop.ini或者是Thumbs.db。

如果不想将.DS_Store或者__MacOSX…或者.svn等等打包进来,可以打开Terminal,输入下面的命令:

zip -r foo.zip foo -x "*.DS_Store" -x ".svn"

foo.zip表示生成的文件名,foo表示目标文件或文件夹的路径,-r表示将所有子目录的内容也打包进来,-x后面跟除外的文件名。

 
添加留言

Posted by on 四月 17, 2012 in Mac OS

 

ARC forbids explicit message send of ‘retain’ ‘release’ ‘autorelease’ ‘dealloc’ ‘retainCount’

之前写了一篇ARC forbids explicit message send of ‘dealloc’的解决方案 ,看到很多朋友不是搜索dealloc而是搜索retain, release过来的,这里一起解答一下。

ARC forbids explicit message send of ….从字面意思上也很好理解,ARC禁止显式(直接)发送retain, release, dealloc…等消息。其实就是使用ARC之后,不允许直接调用retain, release, autorelease, dealloc, retainCount这些方法了,编译器会在合适的地方将这些代码添加进去,解决这样的问题只需要删除与手动管理内存相关的代码(一般就是报错的代码)即可。

习惯了手动管理内存的朋友可以选择禁用ARC,如果想体验ARC带来的编码上的便捷,可以先看一下下面列出的文档:

https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html

https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html

 

 
添加留言

Posted by on 四月 9, 2012 in iOS

 

Tags: , , , ,

解决Xcode中使用Git时出现This file does not exist at the requested revision.

最近升级了Xcode4.3,使用过程中切换到Version Editor进行对比时,一部分文件出现了”This file does not exist at the requested revision.”,但是该文件确实是在Git的管理下。

之前我尝试过删除项目的Derived Data(方法请参考我的另一篇文章Xcode4中代码补全(Code Completion)失效的解决方案),有效过一次,后来就再也不行了。

由于Git本身没有问题,所以问题应该是出在Xcode上。我尝试在Xcode->Window->Organizer->Repositories中删除掉相关的Repository,随后“完全退出”Xcode,再重新打开工程,Version Editor就可以正常工作了。

一定记得完全退出,Xcode->Quit(⌘Q),否则连接Repository的时候会出现 The repository “(null)” could not be reached.

 
添加留言

Posted by on 四月 5, 2012 in Xcode

 

Tags: , ,

Mac OS X中使用SSH连接Dreamhost建立SOCKS代理上网

之前写了一篇Mac OS X中通过程序修改系统网络设置的proxies,探讨通过程序(Objective-C或者Shell)修改设置中的代理选项。最近看到很多朋友是搜索“Mac OS X SSH代理”代理之类的关键字找到那篇文章的,所以我觉得有必要再写一篇Mac OS X中通过SSH代理上网的文章。

我有一个Dreamhost的空间,服务器是Linux系统,帐号拥有Shell权限,可以建立SSH Tunnel。

以下是代理SSH代理上网步骤(理论上对于所有Unix以及其他支持SSH的平台都有效): 查看全文 »

 
1 Comment

Posted by on 四月 2, 2012 in Mac OS

 

Tags: , , , ,