1、建立一个cocos2d-x的工程,找到工程目录下的frame/cocos2d-x目录,将次目录一并copy到iOS原生工程的工程目录里面。
2、将cocos2d-x目录下的cocos2d_libs.xcodeproj(cocos2d-x/build/cocos2d_libs.xcodeproj)和cocossd_js_bindings.xcodeproj(cocos2d-x/cocos/scripting/js-bindings/proj.ios_mac/cocos2d_js_bindings.xcodeproj)两个工程拖到原生工程中。
3、建立工程依赖,在原生工程的target->Build Phases->Target Dependencies添加,选择cocos2d_libs和cocossd_js_bindings的生成库,并在Link Binary With Libraries也选择。
4、配置工程,打开刚刚建立的cocos2d-x工程,主要对照工程的Project和Target的User Header Search Paths,copy上去。
5、将cocos2d-x的AppDelegate.h和AppDelegate.cpp(cocos2d-x/tools/simulator/frameworks/rumtime/src/Classes/)拖到原生工程中,然后编译,此时会报几个错误,这里对其进行一一解决。
5.1 命名冲突,因为原生工程也有一个AppDelegate类,这里需要把cocos的AppDelegate类的命名改一下,文件名也做相应修改(如AppDelegateX)。
5.2 C++编译错误,会报NSObjCRuntime.h、NSObject.h、NSZone.h文件有错误,这是因为C++文件引用了OC类引起的,但是我这里cpp文件没有引用OC的类,后面再网上找的了原因,是因为pch文件,pch里面包含了oc的头文件引用,所有这里需要再pch文件中凡是有引用oc类的地方前后添加
#ifdef __OBJC__
你的oc头文件引用
#endif
5.3然后再编译,还是有一个错误,提示<spine/..h>等文件未找到,需要再Target的Header Search Paths中添加对应路径(在cocos2d-x/cocos/editor-support/spine)。
到此,所有的编译和链接问题解决。