iOS对接Unity踩坑总结

C#

浏览数:144

2019-8-30

AD:资源代下载服务

从零开始集成

在项目的根目录中创建一个文件夹命名为UnityFix如图所示

创建UnityFix文件

将如图所示的4个文件拖入刚刚创建的UnityFix文件夹中 点我下载

下载的四个文件

在Unity.xconfig文件中需要改动的部分:
“#include “Pods/Target Support Files/Pods-你的项目名/Pods-你的项目名.debug.xcconfig”
“#include “Pods/Target Support Files/Pods-你的项目名/Pods-你的项目名.release.xcconfig”
SWIFT_OBJC_BRIDGING_HEADER = UnityBridge.h;_
改成
SWIFT_OBJC_BRIDGING_HEADER = UnityFix/UnityBridge.h;_
由于后面会将UnityBridge.h文件作为桥接文件,有关oc的头文件引入均写在这个文件中
如果在导入的过程中询问是否生成桥接文件,选择不生成
选择PROJECT选中自己的工程在info->Configurations Debug和Release选择Unity(如图所示)

在Build Settings中进行桥接文件的设置

修改BuildSetting配置,统一路径和统一版本号(添加方框中的内容)
第一栏输入$(PROJECT 下划线 DIR)/UnityFix

继续配置:
Build Settings -> Header Search Paths
添加如下路径

Build Settings -> Library Search Paths

在BuildPhases中添加运行脚本
rm -rf “$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Data”;
cp -Rf “$UNITY_IOS_EXPORT_PATH/Data” “$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Data”;

添加依赖库(具体可以参考Unity提供的项目中添加的依赖库)

以上是从零开始对接Unity
接下来是在已经对接过Unity项目的基础上更换Unity文件
如果你使用的是Xcode 9.0版本的IDE,我建议直接将Unity导出的安装包中Classes、Libraries以及Data文件夹直接拷贝至需要替换的工程中的UnityFix文件夹下,并且替换这些文件
替换完成后如果你Command + R运行编译、链接成功那么就可以忽略以下内容,如果很不幸编译链接报错请继续阅读以下踩坑内容

iOS对接Unity踩坑(强烈建议在对接前本地Copy一份)

  1. Xcode 9.0强烈建议不要将原来项目的Unity相关文件删除后在重新添加,因为这样做你会发现你要自己导入很多Cpp依赖文件以及在依赖库中要导入两个库文件(libphone.a 以及 libEasyAR.a) Emmmm别问我怎么知道的,正确的打开方式是这样的:直接复制不要删除再倒入
  2. 如果编译后报xxx undefined的错误这是因为Unity写了一些其他的方法,询问Unity开发工程师然后在GetToken.mm文件中仿照extern “C” void popBack(const char* str)方法写
  3. 其余踩坑总结移步iOS对接Unity踩坑总结
    最后 Good Luck!

作者:DeepChafferer