iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法

这个是我之前CSDN的文章, 里边有一些评论和回复可能会有一些帮助, 地址是 http://blog.csdn.net/dylan_lwb_/article/details/51452470

demo下载地址http://pan.baidu.com/s/1pLcpKpl

1.Unity导出工程时设置bundle id要与项目一致

2.修改bit code为NO

3.删除Main.storyboard,代码设置控制器(方便切换window)

4.将Classes,Libraries,MapFileParser.sh拖入到项目(选中Copy items if needed,选中Create groups)

将Data拖入到项目(选中Copy items if needed,选中Create folder references)

iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第1张图片

5.添加framework(最下边三个是HiAR UnitySDK里边的)

iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第2张图片

6.添加Header Search Paths和Library Search Paths

7.other C Flags -> -DINIT_SCRIPTING_BACKEND=1

iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第3张图片

8.添加User-Defined (UNITY_RUNTIME_VERSION版本号与导出工程的Unity版本号一致)

iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第4张图片
iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第5张图片

9.Unity/Classes/Prefix.pch的代码复制到新建的pch文件, 设置pch文件路径

10.将Classes/main.mm全部内容复制到main.m 并把扩展名改为.mm, 修改如下代码

11.添加Run Script

iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第6张图片

12. 修改UnityAppController.h如下代码

iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第7张图片

13.在AppDelegate.h .m中添加如下代码

iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第8张图片
iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第9张图片

在集成过程中可能遇到的问题

1.Unknown type name 'UnityViewControllerBase'

UnityViewControllerBase报错, 把它改成UIViewController

2.Unknown type name 'AppDelegate'

在新建的项目里边不会报错, 但是我集成到公司项目的时候报这个错, 于是改成如下代码, 目前没有出现问题, 如果有人知道原因, 请在评论区告诉我

iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第10张图片
iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第11张图片

3.Undefined symbols for architecture armv7

遇到这个错的同学请添加AssetsLibrary.framework和Accelerate.framework

iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第12张图片

4.编译时遇到Permission denied错误的是因为当前开发账号对项目目录没有权限执行MapFileParser.sh

解决办法: 在终端执行命令 sudo chmod -R 777 所在的目录

5.Functions that differ only in their return type cannot be overloaded

解决办法: 把Enable Strict Checking of objc_msgSend Calls 改为NO

iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第13张图片
iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第14张图片

6.Control reaches end of non-void function

解决办法: 把Mismatched Return Type 改为NO

iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第15张图片
iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法_第16张图片

// 可能有的步骤忘记了, 有疑问的可以在评论区留言

// 转载请注明原地址

你可能感兴趣的:(iOS集成Unity项目,将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法)