ios – 如何使用Xcode 4.3.1中的工作空间链接到coco2d静态库(1.1 beta 2)

前端之家收集整理的这篇文章主要介绍了ios – 如何使用Xcode 4.3.1中的工作空间链接到coco2d静态库(1.1 beta 2)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
到目前为止我做了以下事情:

>创建工作区
>添加了我的项目
>添加了Cocos2d iOS项目(通过拖放到项目导航器中).这是我项目的兄弟姐妹(不是孩子).
>在我的项目中,在构建阶段,链接到libcocos2d.a
>在我的项目的构建设置中 – 将“始终搜索路径”设置为“是”
>创建指向包含cocos2d iOS xcodeproj文件文件夹的源树变量.
>在我的项目的用户标头路径中,从步骤6添加了源树变量.设置为递归.
8.在项目导航器中,单击libcocos2d.a库(它显示为红色).设置位置“相对于构建产品”您可以在Xcode 4.3.1中的最右侧窗口中进行设置.
>关闭工作区,并在TextWrangler中打开pbxproj文件.搜索包含libcocos2d.a的路径删除路径,因此该条目只读取“libcocos2d.a”.这是因为在编译之后,库仍然在app的同一个构建目录中.

Codesense和自动完成工作.但这不会编译.当我尝试构建时会弹出大约70个链接错误,所有这些都说:

架构armv7的未定义符号:
“_OBJC_CLASS _ $_ CCDirector”,引自:
AppDelegate.o中的objc-class-ref
ViewController.o中的objc-class-ref
“_kEAGLColorFormatRGB565”,引自:
– AppDelegate.o中的[RIAppDelegate applicationDidFinishLaunching:]
“_OBJC_CLASS _ $_ CCTexture2D”,引自:
AppDelegate.o中的objc-class-ref
“_OBJC_CLASS _ $_ EAGLView”,引自:
AppDelegate.o中的objc-class-ref

如果我尝试为模拟器构建,那么它代替armv7,它表示i386缺少符号. cocos2d项目本身编译和放大建立好.这是我的项目有上述错误.

我尝试构建后,cocos2d库存在于我的应用程序的构建目录中.

编辑:忘了提.我还编辑了我的项目的计划,以便不并行构建.我还添加了cocos2d目标,并使其成为列表的顶部(因此它应该首先构建).

编辑:澄清 – 如上所述对pbxproj文件进行更改后,libcocos2d.a文件不再是红色.看起来很正常.此外,我的应用程序也已构建,即使存在链接错误和构建失败. (它实际上并不构建,但产品不是“红色”.应用程序文件创建在与生成cocos2d库的位置相同的位置.

解决方法

我一直试图将Cocos2d用作静态库,而不是模板.原因是它可以更容易地以模块化方式开发我的项目.此外,它可以更容易地在cocos2d版本之间切换,等等.搜索cocos2d-x论坛后,我发现此链接http://cfc.kizzx2.com/index.php/cocos2d-x-with-xcode-4-from-scratch-without-template/

我找到了我需要添加的框架,并解决了所有链接问题.

我还没有向商店提交申请,所以如果有经验丰富的人可以查看是否有任何陷阱/错误,那就太棒了.英语是我的第二语言,所以请不要介意.这是使用cocos2d1.1beta2和Xcode 4.3.1完成的

>创建Xcode工作区
>导航到包含cocos2d xcodeproj文件(iOS / Mac)的文件夹.这是你下载后解压缩cocos2d的地方.
>将xcodeproj文件拖放到Xcode的导航窗口中.(最左边的窗口).
>单击cocos2d项目文件附近的小三角形,使其所有内容消失.
>右键单击导航器和“新建项目”,将新项目添加到工作区.确保将项目作为兄弟添加到cocos2d项目中,而不是作为子项.我选择了单一窗口应用程序(iOS)
>在此新项目中,转到构建设置,并将“始终搜索用户路径”更改为“是”
>将cocos2d文件夹的位置添加到“用户标题搜索路径”.如果您愿意,可以将cocos2d文件添加到Xcode中的源代码树列表中,而只需在此处填写变量名称.例如:${COCOS2D_SRC}.如果以后想要更改构建环境的文件夹结构,这很方便.
>单击目标并选择构建阶段选项卡.您想要将以下二进制文件与您的库链接.确保他们在那里.
libcocos2d.a
libz.dylib
libxml2.dylib
OpenGLES.framework
QuartzCore.framework
UIKit.framework
Foundation.framework
CoreGraphics.framework

如果libcocos2d.a是“红色”,那么不要担心它.它仍然可以正确编译/链接.

>在构建设置下,将“仅构建活动体系结构”更改为YES.

否则,您可能会忽略文件/Users/Pteriedaktyl/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos/libcocos2d.a时出错,文件是为归档而构建的,而不是链接的体系结构(armv6)

>在info.plist文件中,确保删除armv7中“所需设备功能”中的条目.否则,您的代码将仅在较新的设备上运行.

现在你定了!您应该能够从兄弟项目访问cocos2d api.如果您想更改cocos2d的版本,只需更改工作区中的cocos2d项目,更新源树路径(如有必要),并链接到新的libCocos2d.a

测试:
为了尝试一下,我修改了app委托并查看控制器代码以匹配我的一个旧的hello world项目中的代码.

请尝试这一点,如果您有任何问题,请添加主题中.

猜你在找的iOS相关文章