Cocos2d-x项目创建之 原生ios项目导入Cocos2d框架

上一章: Cocos2d-x项目创建之 静态库生成


第一步,“Cocos2d-X源码和“预编译静态库”准备

Cocos2d-X源码可在官网下载,如:



Cocos2d-X 预编译静态库生成方法: Cocos2d-x项目创建之 静态库生成


第二步,原生iOS项目导入“Cocos2d-X源码和“预编译静态库”

1.预编译静态库导入:(本方法只导入“模拟器Debug”环境的静态库,其他环境静态库导入方法雷同!)

如图:

2.Cocos2d-X源码包导入,Cocos2d-X源码包粘贴复制放在 MyFirst项目 的一级目录中:(Cocos2d-X源码包,用于cocos项目开发过程中使用,相当于将官方API集成在工程本地文件中。用于开发过程中,代码API调用!)

如图:


3.Cocos2d-X源码包引用:(Cocos2d-X源码包,用于cocos项目开发过程中使用,相当于将官方API集成在工程本地文件中。用于开发过程中,代码API调用!)

(1)、[project] -- [Build Setting] -- [Header Search Paths]:

$(SRCROOT)/cocos2d-x-3.10

$(SRCROOT)/cocos2d-x-3.10/cocos

$(SRCROOT)/cocos2d-x-3.10/cocos/base

$(SRCROOT)/cocos2d-x-3.10/cocos/physics

$(SRCROOT)/cocos2d-x-3.10/cocos/math

$(SRCROOT)/cocos2d-x-3.10/cocos/2d

$(SRCROOT)/cocos2d-x-3.10/cocos/ui

$(SRCROOT)/cocos2d-x-3.10/cocos/network

$(SRCROOT)/cocos2d-x-3.10/cocos/audio/include

$(SRCROOT)/cocos2d-x-3.10/cocos/editor-support

$(SRCROOT)/cocos2d-x-3.10/extensions

$(SRCROOT)/cocos2d-x-3.10/external

$(SRCROOT)/cocos2d-x-3.10/external/chipmunk/include/chipmunk



(2)、[targets] -- [Build Setting] -- [Header Search Paths]:

$(inherited)

$(SRCROOT)/cocos2d-x-3.10/cocos/platform/sos

$(SRCROOT)/cocos2d-x-3.10/cocos/platform/ios/Simulation



(3)、[targets] -- [Build Setting] -- [Library Search Paths]:

$(SRCROOT)/cocos2d-x-3.10/prebuilt/ios

$(PROJECT_DIR)


4.设置pch路径,使用 Prefix.pch 文件。如图:



第三步,配置Cocos2d-X开发所需框架,如图:



第四步,Cocos2d-X工程环境配置

1.Build Settings中配置,设置Valid Architectures ,设置处理器编译环境

如图:



2.Build Options ->Enable Bitcode 设置为NO

3.设置Other Linker Flages 

$(_COCOS_LIB_IOS_BEGIN)

$(_COCOS_LIB_IOS_END)

-ObjC

如图:


4.设置Other C flages 

-DNS_BLOCK_ASSERTIONS=1 

如图:


5.设置 C Language Dialect 为 Compiler Default,如图:


6.设置 PreProcessor Macros

Debug:

USE_FILE32API

CC_TARGET_OS_IPHONE

COCOS2D_DEBUG=1

CC_ENABLE_CHIPMUNK_INTEGRATION=1

如图:


Release:

USE_FILE32API

CC_TARGET_OS_IPHONE

CC_ENABLE_CHIPMUNK_INTEGRATION=1

如图:


7.设置Apple LLVM [7/8/9/10……] - Warnings - All languages,如图:



第五步,将原有的Cocos2d-X工程文件导入新搭建的ios原生项目中,分别对照“原有的Cocos2d-X工程”修改iOS原生项目,如图:

运行项目,大搞成功!!!


注意:如果运行失败,可能是iOS支持框架添加有误,也可能是工程配置文件配置有误!!!

项目报错:

1.类似 std::basic_string/std::string::find………………

解决方案:可能是因为导入的框架不合理或者方法不对,也可能是导入的框架类型或者版本不对,因此不支持C++编译环境,检查导入iOS支持的框架。或者删除重新导入支持库。

如果,仍然报错,就导入libstdc++.dylib或者libstdc++.6.0.9.dylib即可


2.类似 "_deflateReset", referenced from:…………………  "*******", referenced from:………………

可能是因为导入的框架不合理或者方法不对,也可能是导入的框架类型或者版本不对,因此不支持C++编译环境,检查导入iOS支持的框架。或者删除重新导入支持库。

或者检查工程配置文件的参数修改是正确…………