iOS - 将Unity导出的Xcode工程导入到另一个Xcode项目, 及常见报错的解决方法
2016-05-19 13:02
567 查看
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)
5.添加framework(最下边三个是HiAR UnitySDK里边的)
6.添加 Header Search Paths 和 Library Search Paths
7.other C Flags -> -DINIT_SCRIPTING_BACKEND=1
8.添加User-Defined (UNITY_RUNTIME_VERSION版本号与导出工程的Unity版本号一致)
9.Unity/Classes/Prefix.pch 的代码复制到新建的pch文件,
设置pch文件路径
10.将Classes/main.mm全部内容复制到main.m 并把扩展名改为.mm,
修改如下代码
11.添加Run Script
12. 修改UnityAppController.h如下代码
13.在AppDelegate.h .m中添加如下代码
在集成过程中可能遇到的问题
1.Unknown type name 'UnityViewControllerBase'
UnityViewControllerBase报错, 把它改成UIViewController
2. Unknown type name 'AppDelegate'
在新建的项目里边不会报错, 但是我集成到公司项目的时候报这个错, 于是改成如下代码, 目前没有出现问题, 如果有人知道原因, 请在评论区告诉我
3. Undefined symbols for architecture armv7
遇到这个错的同学请添加AssetsLibrary.framework和Accelerate.[b]framework[/b]
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
6.
Control reaches end of non-void function
解决办法: 把Mismatched Return Type 改为NO
// 可能有的步骤忘记了, 有疑问的可以在评论区留言
// 转载请注明原地址
相关文章推荐
- Error: duplicate files during packaging of APK D:\eclipse\workspace\YC_SafeHelpe r_Community\build\o
- Unity3D遮挡剔除
- Unity编译iOS工程的自动化配置(XUPorter)
- 矩阵在图形学以及Unity中的应用
- Unity3d 同步加载 Assetbundle 方法 AssetBundle.CreateFromFile
- unity中多套uv set理解和应用
- Unity3D 之2D动画机
- Unity3d热更新全书-资源加载(一):从AssetBundle说起
- unity shader 初步模型解析
- Unity学习日常问题记录二-关于刚体的碰撞和物理材质(设定了材质不反弹的一种错误)
- 【Unity】13.3 Realtime GI示例
- 【Unity】13.2 通过Lighting Window设置相关参数
- 【Unity】13.1 场景视图中的GI可视化
- 【Unity】第13章 光照贴图和光影效果
- 规范unity脚本书写
- 异步加载和同步加载Unity加载过度画面
- 在VS2015中让UnityShader脚本关键词高亮
- 我的Unity3D学习日记-01
- 关于unity 双重ScrollRect的水平移动与垂直移动叠加处理
- Unity3D 学习 - 通过C#脚本创建简单的按钮、响应事件