Unity 2022.3.6f1 iOS打包报错:Library 'GameAssembly'未找到求助
Unity iOS打包链接错误解决建议
针对Unity 2022.3.6f1 + Xcode15.0.1的问题
- 确认脚本后端配置:打开Unity Player Settings,检查Scripting Backend是否为IL2CPP。如果是Mono后端,不会生成GameAssembly,此时报错大概率是Xcode配置混乱;如果是IL2CPP,导出Xcode项目后检查
Frameworks/UnityFramework.framework下是否存在GameAssembly.dylib,没有的话清理Unity的Library、Temp文件夹后重新导出。 - 修复重复-lc++链接库:打开Xcode项目,选中UnityFramework Target,进入Build Settings → Other Linker Flags,删除重复的
-lc++条目。或者用以下后处理脚本自动处理:using UnityEditor; using UnityEditor.Callbacks; using UnityEditor.iOS.Xcode; using System.IO; [PostProcessBuild(2000)] public static void FixiOSBuildIssues(BuildTarget buildTarget, string pathToBuiltProject) { if (buildTarget != BuildTarget.iOS) return; string projectPath = Path.Combine(pathToBuiltProject, "Unity-iPhone.xcodeproj", "project.pbxproj"); PBXProject project = new PBXProject(); project.ReadFromFile(projectPath); string frameworkTargetGuid = project.GetUnityFrameworkTargetGuid(); // 清理重复的-lc++并保留一个 string linkerFlags = project.GetBuildPropertyForAnyConfig(frameworkTargetGuid, "OTHER_LDFLAGS"); linkerFlags = linkerFlags.Replace("-lc++ ", "").Replace("-lc++", ""); project.SetBuildPropertyForAnyConfig(frameworkTargetGuid, "OTHER_LDFLAGS", linkerFlags + " -lc++"); // 统一设置SDK版本 foreach (string configName in project.BuildConfigNames()) { string configGuid = project.BuildConfigByName(frameworkTargetGuid, configName); project.SetBuildPropertyForConfig(configGuid, "SDKROOT", "iphoneos"); } project.WriteToFile(projectPath); } - 升级Unity补丁版本:Unity 2022.3早期版本对Xcode15的适配有缺陷,升级到2022.3.18f1及以上的LTS补丁版本,官方修复了大量Xcode15兼容问题。
- 检查架构设置:Unity Player Settings里Architecture只勾选
ARM64,Xcode15不再支持32位架构,多余的架构会导致链接错误。
针对Unity 2021.3.0f1的未定义符号问题
- 清理版本迁移残留:从2022降级到2021后,彻底删除项目的Library、Temp、Obj文件夹,以及Assets/Plugins/iOS下的旧插件文件,避免版本不兼容的残留代码。
- 匹配Xcode版本:Unity 2021.3对Xcode15的支持极差,建议切换回Xcode14.3.1打包,该版本是2021 LTS官方推荐的兼容版本。
- 确认脚本后端一致性:确保2021版本的Scripting Backend和原项目一致,不要随意在IL2CPP和Mono之间切换,否则会出现未定义符号错误。
通用排查步骤
- 移除第三方插件测试:暂时禁用或删除项目中的Native插件,排查是否是插件不兼容Xcode15导致的链接错误,找到问题插件后更新到最新版本。
- 尝试Development Build:Unity导出Xcode时勾选Development Build,开启调试模式后有时能绕过部分链接配置问题,确认基本功能正常后再切换到Release模式。
内容的提问来源于stack exchange,提问作者C-Perfume
相关产品推荐
相关产品推荐

