将Unity导出的Xcode工程导入到现有的Xcode工程.各种
Step 1. 从Unity导出Xcode项目.
File->Build Settings->Player Settings
![](https://img.haomeiwen.com/i668391/04878dcf2421846a.png)
然后右侧Inspector面板,去除Auto Graphics Api选项,只保留一个OpenGLES2
选项. Scripting Backend 选择 IL2CPP
.
![](https://img.haomeiwen.com/i668391/ffc8a4c392e93aa7.png)
Build->导出Xcode工程.(Unity是从Unity导出的项目,UnityToiOS是新建的Xcode项目)
![](https://img.haomeiwen.com/i668391/29b275861f246617.png)
Step 2.开始合并!
- 将
Classes,Libraries,MapFileParser.sh
拖入到项目中,勾选Copy items if needed
,Creat groups
.(文件比较多,耐心等待一小会.)
![](https://img.haomeiwen.com/i668391/5e0180a3629c64a8.png)
2.将Data
拖入到项目,勾选Copy items if needed
,勾选Create folder references
.
![](https://img.haomeiwen.com/i668391/72a2f5c35ad954be.png)
3.下面是Xcode的一些配置. 删除Main.StoryBoard
,以及Info.plist
的Main storyboard file base name
键值对.
![](https://img.haomeiwen.com/i668391/128ccfe52b2dfd44.png)
添加Framework
(添加哪些framework,请参照你从Unity导出来的项目,这里我用的是太虚的sdk,所以下面2个.a文件是太虚的,还有上面的opencv2.framework,以自己项目为准!)
![](https://img.haomeiwen.com/i668391/3d70e7d2493c7ffa.png)
5.关闭BitCode
![](https://img.haomeiwen.com/i668391/099ee02eff6deebd.png)
4.Header Search Paths
设置
![](https://img.haomeiwen.com/i668391/b0a06b46ec9516c7.png)
5.Library Search Paths
设置
![](https://img.haomeiwen.com/i668391/7cf40c1fa84db7ff.png)
6.other C Flags
设置 -DINIT_SCRIPTING_BACKEND=1
![](https://img.haomeiwen.com/i668391/1bf6708a31370712.png)
7.添加 User-Defined
![](https://img.haomeiwen.com/i668391/2fcbdbb937d080c3.png)
GCC_THUNB_SUPPORT
-> NO
GCC_USE_INDIRECT_FUNCTION_CALLS
-> NO
UNITY_RUNTIME_VERSION
-> 你导出项目的Unity版本
UNITY_SCRIPTING_BACKEND
- il2cpp
![](https://img.haomeiwen.com/i668391/2a930c57385a2cf3.png)
8.新建一个
pch
文件,并设置文件路径![](https://img.haomeiwen.com/i668391/3bdbf7f58c83a1e5.png)
将
Classes
目录下的 Prefix.pch
的内容全部复制到我们自己创建的pch文件.
9.设置 main.m
(Supporting Files->main.m)
将 Classes
目录下的 main.mm
的内容全部复制到Supporting Files下的 main.m
,将后缀改为.mm
.
稍微改动下
![](https://img.haomeiwen.com/i668391/ea500bddc82d919f.png)
注意,从
Build Phases
删除Classes
下的 main.mm
的文件.
![](https://img.haomeiwen.com/i668391/dbbd1d4eed51153b.png)
10.添加 Run Script
![](https://img.haomeiwen.com/i668391/4cec4b9c662dd272.png)
![](https://img.haomeiwen.com/i668391/ea04f33bf217ba65.png)
- 修改
AppDelegate.h
![](https://img.haomeiwen.com/i668391/ffd44cc4fe475a92.png)
修改 AppDelegate.m
![](https://img.haomeiwen.com/i668391/5e1ee048028789ab.png)
![](https://img.haomeiwen.com/i668391/4750ecd8dd100cc4.png)
12.修改 UnityAppController.h
![](https://img.haomeiwen.com/i668391/62b821de56a70c9e.png)
你可能出现的错误
- Semantic Issue ->
Controller may reach end of non-void function
![](https://img.haomeiwen.com/i668391/90f901a41a931e8a.png)
解决办法: Mismatched Return Type
-> NO
![](https://img.haomeiwen.com/i668391/f383ea40083f02e2.png)
2.duplicate symbol _main in xxxx.
![](https://img.haomeiwen.com/i668391/7f074c2d687e287a.png)
解决办法 :常见错误了. main文件重复. 参照上面 步骤 9
删除一个 main文件
3.Cloud not load NIB in bundle
![](https://img.haomeiwen.com/i668391/63ecad9c7c368605.png)
解决办法: 删除 Launch Screen File
.
![](https://img.haomeiwen.com/i668391/5da4642f90474383.png)
END~~~
参考链接:
2.老外录得视频,手把手教学.