iOS對接Unity踩坑總結(jié)

從零開始集成

在項(xiàng)目的根目錄中創(chuàng)建一個文件夾命名為UnityFix如圖所示

創(chuàng)建UnityFix文件

將如圖所示的4個文件拖入剛剛創(chuàng)建的UnityFix文件夾中 點(diǎn)我下載

下載的四個文件

在Unity.xconfig文件中需要改動的部分:
“#include "Pods/Target Support Files/Pods-你的項(xiàng)目名/Pods-你的項(xiàng)目名.debug.xcconfig”
“#include "Pods/Target Support Files/Pods-你的項(xiàng)目名/Pods-你的項(xiàng)目名.release.xcconfig”
SWIFT_OBJC_BRIDGING_HEADER = UnityBridge.h;_
改成
SWIFT_OBJC_BRIDGING_HEADER = UnityFix/UnityBridge.h;_
由于后面會將UnityBridge.h文件作為橋接文件,有關(guān)oc的頭文件引入均寫在這個文件中
如果在導(dǎo)入的過程中詢問是否生成橋接文件,選擇不生成
選擇PROJECT選中自己的工程在info->Configurations Debug和Release選擇Unity(如圖所示)

在Build Settings中進(jìn)行橋接文件的設(shè)置

修改BuildSetting配置,統(tǒng)一路徑和統(tǒng)一版本號(添加方框中的內(nèi)容)
第一欄輸入$(PROJECT 下劃線 DIR)/UnityFix

繼續(xù)配置:
Build Settings -> Header Search Paths
添加如下路徑

Build Settings -> Library Search Paths

在BuildPhases中添加運(yùn)行腳本
rm -rf "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Data";
cp -Rf "$UNITY_IOS_EXPORT_PATH/Data" "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Data";

添加依賴庫(具體可以參考Unity提供的項(xiàng)目中添加的依賴庫)

以上是從零開始對接Unity
接下來是在已經(jīng)對接過Unity項(xiàng)目的基礎(chǔ)上更換Unity文件
如果你使用的是Xcode 9.0版本的IDE,我建議直接將Unity導(dǎo)出的安裝包中Classes、Libraries以及Data文件夾直接拷貝至需要替換的工程中的UnityFix文件夾下,并且替換這些文件
替換完成后如果你Command + R運(yùn)行編譯、鏈接成功那么就可以忽略以下內(nèi)容,如果很不幸編譯鏈接報(bào)錯請繼續(xù)閱讀以下踩坑內(nèi)容

iOS對接Unity踩坑(強(qiáng)烈建議在對接前本地Copy一份)

  1. Xcode 9.0強(qiáng)烈建議不要將原來項(xiàng)目的Unity相關(guān)文件刪除后在重新添加,因?yàn)檫@樣做你會發(fā)現(xiàn)你要自己導(dǎo)入很多Cpp依賴文件以及在依賴庫中要導(dǎo)入兩個庫文件(libphone.a 以及 libEasyAR.a) Emmmm別問我怎么知道的,正確的打開方式是這樣的:直接復(fù)制不要刪除再倒入
  2. 如果編譯后報(bào)xxx undefined的錯誤這是因?yàn)閁nity寫了一些其他的方法,詢問Unity開發(fā)工程師然后在GetToken.mm文件中仿照extern "C" void popBack(const char* str)方法寫
  3. 其余踩坑總結(jié)移步iOS對接Unity踩坑總結(jié)
    最后 Good Luck!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容