1. 程式人生 > >Cocos2d-x專案建立之 原生ios專案匯入Cocos2d框架

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支援的框架。或者刪除重新匯入支援庫。

或者檢查工程配置檔案的引數修改是正確…………