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

本文提供了一个详细的Unity项目iOS平台集成指南,包括了从Unity导出iOS工程、配置Xcode项目到解决常见错误的具体步骤。涉及如何正确设置bundle id、禁用bitcode、添加必要的frameworks及解决编译错误等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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)

 

 

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.framework

 

 

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

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

// 转载请注明原地址

 

转载于:https://www.cnblogs.com/dylan-lwb/p/6384918.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值