今天晚上开始使用Xcode4,初窥历程如下。
一、下载安装Xcode4
因为我需要让Xcode4和老版本共存,在安装Xcode4时选择其他安装路径,安装成功后在xcode4安装目录下改名Xcode.app为Xcode4.app以区分老版本,随便找一个xcodeproj文件,右键Get Info,在Open with里面选择Xcode4并点击Change All以设置文件类型关联。
二、熟悉界面
打开Xcode,大概浏览下界面的变化,到处乱点下看是啥东西,把Xcode菜单浏览一遍。
有空的话可以看看帮助文档里面关于源代码管理的部分。
试着建一个HelloWorld项目,并操作下IB链接。
三、配置代码编辑器的字体和颜色(Fonts & Colors)
我比较喜欢用黑色背景写代码,眼睛比较舒服。以前老的ColorTheme文件用不了,ColorTheme的存放路径变了,旧的在~/Library/Application Support/Xcode/Color Themes,Xcode4的在~/Library/Developer/Xcode/UserData/FontAndColorThemes下,而且文件格式也变了,但是大部分项目都是一样的。可以重新配置颜色字体,也可以对照着手动改配置文件。
Google了一下,aktowns已经写了一个转换脚本:https://gist.github.com/793006
使用方法非常简单:
1.下载dvtcolorconvert.rb,假如你放在桌面,把旧的Theme文件也复制到桌面
//dvtcolorconvert.rb
#!/usr/bin/env ruby # This script converts xccolorthemes to dtvcolorthemes for porting xcode 3.x themes to xcode 4.x # created by ashley towns <[email protected]> # Public domain. # ./dvtcolorconvert <inputfile> # spits out a .dtvcolortheme file require 'rubygems' require 'plist' raise "Error: need a source file #{__FILE__} [file.xccolortheme]" if ARGV.length == 0 def alpha inc, alpha=1 "#{inc} #{alpha}" end def convert infile hash = Plist::parse_xml infile out_hash = {} out_hash[:DVTSourceTextSyntaxFonts] = {} out_hash[:DVTSourceTextSyntaxColors] = {} hash.each do |name, node| node.each do |child_name, child| puts "[on] node:#{name} child:#{child_name}(#{child})" if name == "Colors" case child_name when /Background/ out_hash[:DVTSourceTextBackground] = alpha child out_hash[:DVTConsoleTextBackgroundColor] = alpha child out_hash[:DVTSourceTextInvisiblesColor] = alpha child out_hash[:DVTSourceTextBlockDimBackgroundColor] = alpha child when /InsertionPoint/ out_hash[:DVTSourceTextInsertionPointColor] = alpha child out_hash[:DVTConsoleTextInsertionPointColor] = alpha child out_hash[:DVTDebuggerInsutrctionPointerColor] = alpha child out_hash[:DVTConsoleDebuggerInputTextColor] = alpha child out_hash[:DVTConsoleDebuggerOutputTextColor] = alpha child out_hash[:DVTConsoleExectuableInputTextColor] = alpha child out_hash[:DVTConsoleExecutableOutputTextColor] = alpha child when /Selection/ out_hash[:DVTSourceTextSelectionColor] = alpha child out_hash[:DVTConsoleTextSelectionColor] = alpha child out_hash[:DVTDebuggerPromptTextColor] = alpha child else out_hash[:DVTSourceTextSyntaxColors][child_name] = alpha child end elsif name == "Fonts" case child_name when /xcode.syntax.plain/ child = "Inconsolata - 14pt" out_hash[:DVTConsoleDebuggerInputTextFont] = child out_hash[:DVTConsoleDebuggerOutputTextFont] = child out_hash[:DVTConsoleDebuggerPromptTextFont] = child out_hash[:DVTConsoleExecutableInputTextFont] = child out_hash[:DVTConsoleExecutableOutputTextFont] = child out_hash[:DVTSourceTextSyntaxFonts]['xcode.syntax.plain'] = child else out_hash[:DVTSourceTextSyntaxFonts][child_name] = "Inconsolata - 14pt" #child end else raise "I don't know what #{name} is." end end end puts "Saving #{infile.gsub(/xccolortheme/,'dvtcolortheme')}" fp = File.open(infile.gsub(/xccolortheme/,'dvtcolortheme'),'w') fp.write out_hash.to_plist fp.close end convert ARGV[0] #Dir['*.xccolortheme'].each do |file| # convert file #end
2.安装"plist“ ruby gem: $sudo gem install plist
3.执行转化: $ruby dvtcolorconvert.rb ElfDart.xccolortheme 就在桌面生成ElfDart.xccolortheme了,放到~/Library/Developer/Xcode/UserData/FontAndColorThemes下重启Xcode4,在Preferences中的Fonts & Colors启用主题。
我转换后的主题文件:
如果你喜欢的话可以在这里下载到:http://code.google.com/p/elf-ios-resource/downloads/detail?name=ElfDark.dvtcolortheme
https://github.com/Sundae/Cocoa-Utilities
四、Preferences/Text Editing
五、快捷键
打开Key Bindings Preferences,复制Default并起名。
键盘对照:实体键盘左下角为Ctrl,从左到右依次为ctrl,option,cmd(command,苹果花键),从下到上依次为ctrl,shift,CapsLock,tab.
列表格式:功能名称 (快捷键,如为手动修改则标记“修改”,否则为Xcode4默认): 功能描述
Edit Menu:
Filter in Navigator (cmd+option+J):Xcode左下角的文件过滤(查找).
Filter in Library (cmd+option+L): 库过滤(查找),类似之前IB的Library(cmd+shift+L)
View Menu:
Project (cmd+1):切换到Xcode左边的导航区域(Navigator area)的项目组,类似与之前的Groups & Files.
Show Navigator (cmd+0):显示/隐藏导航区域
Standard (cmd+enter):如下图,切换到右上角的"Editor"里面的标准编辑器视图,右边的那两个依次为助手视图(用于分割编辑器)、版本视图(用于对照当前文件的版本变更)。
Show Debug Area (修改cmd+shift+R):显示/隐藏Xcode下面的Debug区域。Xcode4将之前的Debugger和Consoler合在了一起,默认快捷键是之前Debugger的快捷键(cmd+shift+Y),修改为之前比较常用的Consoled快捷键cmd+shift+R,方便呼出隐藏调试区域,R键也比Y键更容易按到。
Navigate Menu:
Reveal in Project Navigator (cmd+shift+J):在导航区域的项目组定位并选中当前正在编辑的文件。
Jump to Next Counterpart(ctrl+cmd+上箭头):跳到下一个相关文件,类似与之前的Switch To Header/Source File(cmd+option+上箭头),在头文件和实现文件之间切换。
Editor:
Show completions (Esc 或者 ctrl+space): 应该是最常用的一个功能,显示自动完成列表。
Re-Indent(修改cmd+F8):整理代码缩进(格式化代码风格),对于喜欢8位Tab和代码整洁的我个人来说,这个功能很常用,在VC下落下的毛病,很难更改alt+F8的习惯了。
Comment Selection(cmd+/):块注释
Fold(cmd+option+左箭头):折叠当前区块,适应与方法、函数等带花括号的,/*花注释*/,@xx @end等。
Unfold(cmd+option+右箭头):展开当前区块(如果已折叠)。
Product Menu:
Run (cmd+R):直接运行。
Run (cmd+option+R):选项运行。
Stop (修改cmd+shift+enter):停止运行,习惯自之前的Xcode。
Step Into (F7):单步跟进
Step Over (F6):单步跳过
Step Out (F8):单步跳出
Clear Console (cmd+K):清理控制台
Help Menu:
Quick Help for Selected Item(按住option键再左键单击,同xcode之前版本):快速帮助,在打开的窗口点右上角的文件夹图标可在帮助文档中查找,点.h图标可打开头文件。
Search Documentation for Selected Text(ctrl+option+cmd+/):在帮助文档中搜索,以前的option+双击,这么长的组合键不建议记忆和使用,建议option+单击后在快速帮助里点进文档窗口。
Selection:
Move to beginning of document (cmd+上箭头):将光标移到本文档开始
Move to End of document (cmd + 下箭头): 将光标移到本文档末尾。
Text Key Binding:
對文字的操作大多和Mac OS X的慣用操作雷同,對Mac OS X字符操作快捷鍵比較熟悉的同學可以嘗試在編輯代碼時使用,也可參考我之前寫的<<深入瞭解Xcode>>。
KeyBindings文件保存在~/Library/Developer/Xcode/UserData/KeyBindings下,你可以直接下载使用上文提及的快捷键修改:
http://elf-ios-resource.googlecode.com/files/ElfKeyBinding.idekeybindings1.0.zip
https://github.com/Sundae/Cocoa-Utilities
六、离线文档
好像从Xcode3起就不提供离线文档了,apple在线文档慢的要死,让Xcode下载更要死...解决办法还是老样子:我再结合Xcode4说下:
1.打开Xcode4 Documentation Preferences,选择一个Library,点击下面的Info按钮查看信息,找到其中的Feed地址,如下图:
在浏览器中打开这个源,找最新版本的XAR下载(文件过大,如果Mac上没装下载工具建议到Windows下用迅雷下)。
下载到本地后用xar解压: sudo xar -xf 文档文件.xar
得到 “文档文件.docset"
然后将文件的所有者设为devdocs: sudo chown -R -P devdocs 文档文件.docset
确保XCODE4没有运行,把docset复制到/xcode4安装目录/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/ (可以从上图的Installed Location直接点进去)。
运行Xcode4,就可以离线浏览文档了。
七、Locations Preferences
Xcode4默认将所有项目、workspace的build,index,snapshots,archives等都放在了一个特定的目录,默认为~/Library/Developer/Xcode/DerivedData/
如果想让build目录放到项目目录下面的话,就在这里设置”Build Location"为"Place build products in locations specified by tagets"即可。其他Locations建议不要动。
八、本文更新
1.更改Xcode自带模板中的公司名称。2011-05-10
以前的Xcode将此信息存储与com.Apple.xcode配置中,新的Xcode4会从Mac OS X的Adress Book中读取此信息,要更改注释中公司名称,只需要打开Adress Book.app,更改当前登陆用户名的CompanyName即可。
2.如何使用自动插入关闭花括号} 2011-05-10
在Xcode Preferences | Text Editing中勾选Automatically insert closing "}",在代码中输入{,并没有立即插入},这时只需敲一个回车就插入右花括号了。适用与方法、if-else、for等等。
3.代码功能注释。 2011-05-10
// MARK: ***(标签,功能同#pragma mark ***),
// TODO: ***
// FIXME: ***
// !!!: ***
// ???: ***
4.由于google code在国内经常和谐,更改主题和键盘文件下载地址为github: 2011-07-06