之前制作AR应用,需要使用Unity制作内容嵌入到iOS原生程序,参考网上资料导出XCode项目集成,遇到部分问题,在此记录解决办法。
问题:Unity2018使用.net4x 导出Xcode,从原Unity5.3导出工程升级,只覆盖了导出的资源、库文件,出现“No member named ‘xxxx’ in ‘il2cpp::icalls::mscorlib::System::Buffer’”Bulk_mscorlib_2.cpp
解决:在原生工程的TARGETS的Build Setting中搜索Other C Flags,对比2018导出的工程,拷贝对应值到旧工程中(-DNET_4_0)。如果不是.net4x或者还有该类问题,找到对应缺少的类型所在头文件,加入到Buld Setting->header search paths中。
问题:BitCode异常
解决:Build Setting->Build Options->Enable Bitcode设置为NO。
问题:ARC异常
解决:Build Phases->Compile Sources->JSONKit.m设置为-fno-objc-arc。
问题:运行后报错 dyld: Library not load: @rpath/xxx.framework/xxx …
Referenced from: …
Reason: image not found.
解决:在TARGETS里的General->Embedded Binaries添加对应framework。
问题:Please include Preprocessor.h before other includes。
解决:把include Preprocessor.h移动到文件开始,在其他包含的头文件之前。
问题:Unknow type name il2cpp_z_Byte; did you mean il2cpp_z_uInt。
解决:把XCode项目Libraies中的ilbil2cpp文件夹Remove References。
问题:Undefined symbols for architecture arm64:”_SetUnityIOSxxorNewerBody”, referenced from: _SetAllUnityFunctionsForDynamicPlayerLib in DynamicLibEngineAPI.o
解决:删除DynamicLibEngineAPI-functions.h和DynamicLibEngineAPI.mm
问题:”_OBJC_CLASS_$_ARSession”,referenced from Objc-class-ref in easyar
解决:在framework加入arkit
问题:初始化Vuforia时,调用initQCARiOS出现:Thread 1: EXC_BAD_ACCESS 错误。
解决:工程的TARGETS名称使用了中文导致,改为英文即可。