# 设置 iOS 构建配置

> Set up an iOS build configuration for your Unity project.

Build Automation 可帮助您自动完成针对 iOS 设备构建 Unity 项目的过程。iOS 开发有许多先决条件。请注意，Apple 的流程和要求会随时间推移而变化，因此如果遇到问题，最好参考 Apple 开发者网站。

## 关于 Apple 隐私清单的说明##a-note-on-the-apple-privacy-manifest

Apple 正在推出一项隐私政策，要求 App Store 上针对 iOS、iPadOS、Apple tvOS 和 visionOS 平台的全新和更新应用程序包含[隐私清单文件](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files)。

隐私清单文件 `PrivacyInfo.xcprivacy` 列出了 Unity 应用程序（或任何第三方 SDK、包和插件）收集的[数据类型](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests)，以及使用某些 [Required Reason API](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api) 类别的原因。Apple 还要求将某些域声明为“[跟踪](https://developer.apple.com/app-store/user-privacy-and-data-use/)”；除非用户同意，否则这些域可能会被阻止。

> **Warning:**
>
> **重要**：如果您或第三方 SDK 对 Required reasons API 的使用未在隐私清单中声明，则您的应用程序可能会被 App Store 拒绝。有关更多信息，请访问 Apple 关于 [Required Reasons API](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api) 的文档。

Unity Build Automation 不会收集数据，也不会参与任何需要在隐私清单文件中披露的数据处理行为。

## Xcode 框架##xcode-frameworks

如果您的 **iOS** 项目需要额外的 Xcode 框架，请使用 [PBXProject](https://docs.unity3d.com/ScriptReference/iOS.Xcode.PBXProject.html) API 将这些框架添加到由 **Unity Build Automation** 创建的 Xcode 项目文件中。

有关使用该 API 的 Unity 项目示例，请参阅 GitHub 上的 [UpdateXcodeProject](https://github.com/Unity-Technologies/iOSNativeCodeSamples/tree/2022-dev/NativeIntegration/Misc/UpdateXcodeProject) 示例项目。您可以使用该示例进行试验和学习。

该示例项目的插件之一是外部 Xcode 项目操作 DLL。该 DLL 是 Unity 在 Bitbucket 代码仓库中提供的源代码的构建产物。包含 Xcode 项目操作功能的一种首选方法是将 C# 源代码文件复制到项目的 Assets/Editor 文件夹中。

有两种方法可以调用此 API 来操作 Xcode 项目：

* 使用内置的 Unity [PostProcessBuildAttribute](https://docs.unity3d.com/ScriptReference/Callbacks.PostProcessBuildAttribute.html)，它会在 Unity Build Automation 的导出后方法运行之前执行。
* 使用 [Unity Build Automation 导出后方法](../advanced-build-configuration/run-custom-scripts-during-the-build-process#post-export-method-name)（需要访问高级设置）。
