当您为 iOS 平台构建 Unity 项目时,Unity 会创建一个包含 Xcode 项目的文件夹。您需要构建和签署此项目,然后才能将其部署到设备上或在 App Store 上分发。
注意:您可以使用 Xcode.PBXProject 修改生成的 Xcode 项目。
每个生成的 Unity iOS Xcode 项目都具有以下结构和目标
Xcode 项目包括 Xcode 项目文件 xcodeproj
和框架链接,这些链接仅出现在 Xcode 项目导航器中。除了默认文件夹外,您还可以创建自定义文件夹以添加您的自定义文件。
MainApp
文件夹和应用程序表示数据,例如启动屏幕、.xib
文件、图标、数据和 Info.plist
文件。Unity-iPhone 目标对 UnityFramework 目标只有一个依赖项。UnityFramework.framework
捆绑包的目标。它包括 Unity 运行时、Classes
、UnityFramework
和 Libraries
文件夹,以及相关框架。UnityFramework
文件夹包含隐私清单文件 (PrivacyInfo.xcprivacy),这是 Unity 运行时的合并隐私清单文件,Unity 插件在 Unity 外部创建的一组代码,可在 Unity 中创建功能。在 Unity 中可以使用两种类型的插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和原生插件(平台特定的原生代码库)。 更多信息注意:使用 PBXProject.GetUnityFrameworkTargetGuid() 获取 UnityFramework 目标 GUID,使用 PBXProject.GetUnityMainTargetGuid() 获取 Unity-iPhone 目标 GUID。
Classes
文件夹包含集成 Unity 运行时和 Objective-C 的代码。Unity 将应用程序的入口点存储在这个文件夹内的 main.mm
和 UnityAppController.mm/h
文件中。您可以创建自己的从 UnityAppController
派生的 AppDelegate
,或者如果您的任何插件包含 AppController.h
,则可以包含 UnityAppController.h
。如果您的 Plugins/iOS
文件夹包含 AppController.mm/h
,则可以合并并重命名它们。
InternalProfiler.h
文件定义了一个编译条件,用于启用内部 性能分析器一个有助于优化游戏的窗口。它显示在游戏的各个区域花费了多少时间。例如,它可以报告渲染、动画或游戏逻辑中花费的时间百分比。 更多信息
请参阅 术语表。此文件夹中的代码不会经常更改,您可以将自定义类放在这里。如果您选择 追加模式,Xcode 会在构建之间保留对此文件夹的更改。但是,此功能不支持多个构建目标,并且需要 Libraries
文件夹的固定结构。
Unity 的内部性能分析器速度快且不显眼,并提供有关以下方面的基本信息:
此文件夹包含应用程序的序列化资产和 .NET 程序集 (.dll
或 .dat
文件),这些文件可以是完整的代码或元数据,具体取决于代码剥离设置。machine.config
文件设置了各种 .NET 服务,例如安全和 WebRequest。Xcode 会在每次构建时刷新此文件夹的内容。您不应对此进行任何更改。
默认情况下,Data
文件夹的 目标成员身份 是 Unity-iPhone 目标,Unity 运行时在 mainBundle
中搜索它。要更改 Unity 运行时查找 Data
文件夹的默认捆绑包,请在调用任何运行函数之前,在 UnityFramework 实例上调用 setDataBundleId: "com.my.product"
。例如,如果您希望 Data
与 UnityFramework 调用一起使用,请使用 setDataBundleId: "com.unity3d.framework"
并将 目标成员身份 设置为 UnityFramework。
注意:仅当 Data
文件夹是应用程序目标的一部分,而不是 UnityFramework
目标的一部分时,才支持按需资源。
Libraries
文件夹包含用于 IL2CPP 的 libil2cpp.a
。libiPhone-lib.a
文件是 Unity 运行时静态库,RegisterMonoModules.cpp
将 Unity 原生代码与 .NET 绑定。Xcode 会在每次构建时刷新此文件夹的内容。您不应对此进行任何更改。
图标和启动屏幕 (.png
文件) 位于 Unity-iPhone
文件夹中的资产目录中。Unity 会自动管理这些文件。启动屏幕、它们的 XML 界面构建器 (.xib
文件) 和故事板文件存储在项目的根文件夹中。您可以在 播放器设置 窗口 (菜单:编辑 > 项目设置 > 播放器设置) 中配置这些文件。确保您创建的自定义启动图像符合 Apple 的 人机界面指南。
您可以在 Unity-iPhone 目标 (通过 mainBundle
访问) 中管理 Info.plist
文件,该文件来自 Unity 的 播放器设置 窗口 (菜单:编辑 > 项目设置 > 播放器设置 > 其他设置 > 标识)。Unity 在构建播放器时更新此文件,而不是替换它。除非您需要,否则不要对其进行任何更改。
/UnityFramework/Info.plist
文件 (通过 bundleWithIdentifier:@"com.unity3d.framework"
访问) 是 UnityFramework
的一部分。您可以将此文件中的值保留在 mainBundle
的 Info.plist
文件中。这确保了即使将 UnityFramework
移动到另一个应用程序(例如,使用 Unity 作为库 时),您仍然可以获取这些值。