使用平台Xcode4.6.1+cocos2d 2.0。
提示:如果在安装过程中提示拒绝权限,可以打开Finder,按SHIFT+COMMAND+G,然后输入~/Library/Developer/Xcode,删除Templates文件夹,然后再新建一个名为Templates的文件夹即可。
目前版本的install-templates脚本不再支持通过sudo的方式安装,执行上述操作可以让当前账户获取对Templates文件夹的访问权限。
从iOS5开始,ARC技术的引用简化了程序员的开发工作,因为我们不再必须去记住一定要去释放每一个已申请的对象,我们可以将更多的注意力专注于程序逻辑的本身。
但是cocos2d默认是不支持ARC的,如何能做到既能使用ARC又能使用cocos2d呢?静态库可以解决这一问题,下面介绍一下具体操作步骤。
1. 新建工程,选择cocos2d iOS模板:
2. 输入项目的基本信息:
3. 新建后的项目如下图所示:
4. 点击下方的Add Target按钮,添加静态库,如下图所示:
5. 为新的静态库起一个你喜欢的名字,如下图所示,我给静态库起的名字是Cocos2d Libs:
注意不要选择“Use Automatic Reference Counting”,因为我们将把cocos2d的文件移植到该静态库中,而cocos2d目前并不支持ARC。
6. 添加完静态库后的项目结构如下图所示:
7. 选中Cocos2d Libs和libs,并将这两个文件夹删除,注意此时只是删除引用,而不要把文件彻底删除,因为稍后还会使用到。删除之后的项目结构如下图所示:
8. 选中左侧项目结构的根节点HelloCocos2D,然后选中Targets下方的HelloCocos2D,在Summary选项卡中,滚动到中下方位置可以看到“Linked Frameworks and Libraries”,点击其下方加号,在弹出的窗口中,选中“libCocos2d Libs.a”并点击Add按钮,如下图所示;
9. 选择菜单命令File-Add Files to "HelloCocos2D"…,找到并选中第7步删除的libs文件夹,确认不要勾选Destination的Copy items into destination group's folder(if needed),同时在Add to targets中选择Cocos2d Libs作为目标,如下图所示:
10. 将添加后的libs文件夹拽到HelloCocos2D文件夹的下方,这样就和我们刚才看到的结构差不多了,如下图所示:
11. 在项目属性的Targets下方选中Cocos2d Libs,在搜索框中输入search,然后将Always Search User Paths设置为YES,在User Header Search Paths中输入./**,如下图所示:
12. 在搜索框中输入build,然后将Build Active Architecture Only的Debug修改为No,如下图所示:
说明:如果不修改此选项,虽然可以在模拟器上运行,但是无法在真机上调试;
13. 打开Finder,浏览到项目所在位置,将Cocos2d Libs-Prefix.pch文件从Finder中拖拽至Supporting Files文件夹下,此时需要勾选Destination中的Copy items into destination group's folder(if needed),并在Add to targets中选中Cocos2d Libs作为目标。如下图所示:
说明:引入pch文件之后,就可以将刚刚Xcode生成的Cocos2d Libs彻底删除了。
14. 在项目属性的Targets下方选中Cocos2d Libs,在搜索框中输入prefix,然后将Prefix Header修改为HelloCocos2D/Cocos2d Libs-Prefix.pch,如下图所示:
15. 在项目属性的Targets下方选中Cocos2d Libs,在搜索框中输入ios deployment,然后将iOS Deployment Target由iOS 6.1改为iOS 4.3,如下图所示:
说明:如果不修改此设置,当选择在iOS5.0模拟器上运行时,会报:lazy symbol binding failed: Symbol not found: _objc_setProperty_nonatomic的错误。
16. 选择菜单命令Edit-Refactor-Convert to Objective-C ARC…,在弹出的窗口中选中HelloCocos2D.app(HelloCocos2D),然后单击Check按钮,如下图所示:
17. 后续再出现的对话框直接确认即可。经过上述步骤调整之后的工程结构看起来并没有发生太大的变化,不过此时我们的工程已经支持ARC了。运行效果如下图所示:
OK,搞定收工!