cocos2d-x单独编译成静态库嵌入到iOS工程里面的方法

cocos2d-x编译时间太长一直让人诟病啦,特别是archive,要是再出几次错,就忒折磨人了,小小研究了下生成静态库嵌入到工程里面的方法,希望对一些人有帮助吧。

把cocos2d-x的工程从xcode游戏工程中删掉,单独打开cocos2d-x的工程,其路径为YourApp/cocos2d/build/cocos2d_libs.xcodeproj

选择target为“build all libs for iOS”, 在其右先选择模拟器,编译工程。等编译完成后,应该是已经生成五个静态库文件,但是在xcode里面看可能是红色的,这是xcode的bug,选中任意一个静态库文件,在xcode的界面右侧显示其详情,可以看到其路径,路径的最后一项可能是Debug,而实际值可能是Debug-iphoneos或者Debug-iphonesimulator,复制这个路径,去掉最后面的Debug,然后在终端里面用open命令打开,就可以看到生成的静态库放在Debug-iphonesimulator下面了,同样地,再选择iOS Device进行编译,生成的静态库会放在Debug-iphoneos里了

Debug-iphonesimulator里面的静态库是适用于模拟器的, Debug-iphoneos里面的静态库是适用于真机的,这可以通过类似于lipo -info libPrint.a的命令进行查看,为了通用起见可以将这两者进行合并,这样生成的静态库既可以在模拟器下运行,也可以在真机下运行,合并的命令类似于下面的:

lipo -create ./Debug-iphonesimulator/libCocosDenshion\ iOS.a ./Debug-iphoneos/libCocosDenshion\ iOS.a -output $OUTPUTDIR_PATH/libCocosDenshion\ iOS.a

方便起见,最好是写一个脚本将5个静态库进行合并。

将5个静态库单独放入工程路径下的某个文件夹下,最好是你游戏工程的cocos2d目录下,然后在Build Phase里的Link Binary with Libraries中添加这5个静态库。接着在build setting里的header search path里加上头文件路径,比如我用的就是:$(SRCROOT)/…/cocos2d/cocos/platform/ios,这样可以让它自己去找头文件,然后编译就没问题了。

特别说明的是:生成的静态库很大,最大的静态库会超过1G,如果不是多人合作的话不建议加入到git或svn中

能否跟进cocos2d-x源代码中打断点呢?不是不可能也是有办法的:
首先在cocos2d-x的工程中打上断点 ,然后点击view ->navigators ->show breakpoint navigators 后 右击选择你刚打的断点,首先选择 share breakpoint 然后点击 move breakpoint to后选择你运行的项目(据我测试应该是User)后,然后转到你运行的项目debug即可
参考:http://www.cocoachina.com/ask/questions/show/4537/

以上说的是Debug模式,要发布App时需要重新生成Release模式下的静态库,再添加到你的项目中发布。也可以一开始就把Debug静态库和Release静态库全部生成,一劳永逸

您好,我编译完成只有一个libcocos2d iOS.a,没有找到build all libs for iOS,请问在哪里

终于有一个回帖的,看图

楼主很有分享精神额.
不过我都是在vs里面直接点 仅生成游戏代码,库文件直接跳过
这样就可以了.

你要是用xcode做iOS游戏就知道了。其实平时的编译也不用花很长时间,只是上次打包上传到AppStore时出了几次错,然后重新提交就是全部重新编译,那时间长得我都不想活了

哈哈,正好可以找个借口出去溜达一圈

顶下楼主: 模拟器 和真机 的能否在详细些

你哪里不清楚就直问吧

楼主我用3.3final的没找到你说的target,另外方便加下你QQ吗,有些问题要问

还没用到3.3呢?你截图中的这个可能就是的呢

但是没看到你说的五个静态库。。。你能发下路径吗

在product文件夹里的是啥?回复时尽量截图看看啊

就是和你一楼说的一样,红色的

那可能是3.3合并了吧?对3.3不清楚,指导不能啊,我现在还在用3.2呢

那你说下3.2编译后的路径是在哪?

仔细看我写的第三段啊:在xcode的界面右侧显示其详情,可以看到其路径,路径的最后一项可能是Debug,而实际值可能是Debug-iphoneos或者Debug-iphonesimulator,复制这个路径,去掉最后面的Debug,然后在终端里面用open命令打开,就可以看到生成的静态库放在Debug-iphonesimulator下面了,同样地,再选择iOS Device进行编译,生成的静态库会放在Debug-iphoneos里了

在xcode的界面右侧显示其详情,是指这样?

不是啊,点那个红色文件,再点下图中右上角的按钮,不就出现详情了?

额我有点2了,打开后只有.a,头文件呢?

我也遇到了同样的问题,头文件我找不到,在哪能找着.h文件?