You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity 2023.2.3+Xcode15.0.1编译iOS项目出现il2cpp未定义符号错误求助

解决Unity 2023.2.3 + Xcode 15.0.1 iOS构建il2cpp符号未定义问题

核心解决步骤

这类错误属于链接阶段缺失il2cpp相关符号,通常和Unity编译配置、Xcode架构设置、第三方插件冲突有关,以下是针对性修复方案:

1. 校准Unity的il2cpp配置

  • 打开Unity编辑器,进入Edit > Project Settings > Player > iOS > Other Settings
  • 确认Scripting Backend设置为IL2CPP(而非Mono)
  • 仅勾选Architecture中的ARM64(Xcode15已废弃32位架构支持)
  • 点击Player Settings底部的Reset to Defaults,重置iOS配置后重新导出Xcode项目

2. 清理缓存重建

  • Unity端:执行File > Build Settings > Clean Build删除旧产物;删除项目根目录的Library、Temp文件夹,重启Unity后重新构建
  • Xcode端:打开项目后执行Product > Clean Build Folder(快捷键Cmd+Shift+K);删除Derived Data(路径:Xcode > Settings > Locations > Derived Data)

3. 排查第三方插件冲突

  • 检查项目中含原生iOS代码的插件(.framework/.a文件)是否支持ARM64:
    终端执行命令:lipo -info 插件路径/xxx.a,确认输出包含arm64
  • 移除近期新增的插件,逐步排查冲突源;更新旧版本第三方SDK至兼容Unity2023和Xcode15的版本

4. 调整Xcode链接设置

  • 打开导出的Xcode项目,进入Build Settings
  • 搜索Other Linker Flags,添加-force_load "$(SRCROOT)/Libraries/libiPhone-lib.a"(强制加载libiPhone-lib.a的所有符号)
  • 确认Build Active Architecture Only:Debug模式设为Yes,Release模式设为No
  • 确保Valid Architectures仅保留arm64

5. 验证Unity il2cpp模块完整性

  • 导出Xcode项目时勾选Development Build和Script Debugging,查看构建日志是否有il2cpp编译错误
  • 若日志显示il2cpp编译失败,通过Unity Hub重新安装对应版本的iOS Build Support模块

原始错误日志:
Undefined symbols for architecture arm64:
"_il2cpp_add_internal_call", referenced from:
scripting_add_internal_call(char const*, void const*) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
"_il2cpp_array_class_get", referenced from:
scripting_array_class_get(ScriptingClassPtr, unsigned long) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
"_il2cpp_array_element_size", referenced from:
scripting_array_element_size(ScriptingClassPtr) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
"_il2cpp_array_length", referenced from:
scripting_array_length(ScriptingArrayPtr) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
scripting_array_length_safe(ScriptingArrayPtr) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
"_il2cpp_array_new", referenced from:
scripting_array_new(ScriptingClassPtr, unsigned long, unsigned long) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
"_il2cpp_assembly_get_image", referenced from:
MonoManager::LoadAssemblies() in libiPhone-lib.a(Runtime_Scripting_3_4ia5l.o)
"_il2cpp_class_array_element_size", referenced from:
scripting_class_array_element_size(ScriptingClassPtr) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
"_il2cpp_class_enum_basetype", referenced from:
scripting_class_enum_basetype(ScriptingClassPtr) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
"_il2cpp_class_from_name", referenced from:
scripting_class_from_name(ScriptingImagePtr, char const*, char const*) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
MonoManager::GetScriptingClass(char const*, char const*, char const*) in libiPhone-lib.a(Runtime_Scripting_3_4ia5l.o)
"_il2cpp_class_from_system_type", referenced from:
scripting_class_from_systemtypeinstance(ScriptingSystemTypeObjectPtr) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
"_il2cpp_class_from_type", referenced from:
scripting_class_from_type(ScriptingTypePtr) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
"_il2cpp_class_get_assemblyname", referenced from:
scripting_class_get_assemblyname(ScriptingClassPtr) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)
"_il2cpp_class_get_declaring_type", referenced from:
scripting_class_get_declaring_type(ScriptingClassPtr) in libiPhone-lib.a(Runtime_ScriptingBackend_Il2Cpp_0_4ia5l.o)

内容的提问来源于stack exchange,提问作者venky chowdary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 00:22:51