# 无法从 Unity Build Automation 下载或安装 iOS 构建

> Resolve iOS build download and installation issues in Unity Build Automation.

## 症状##symptoms

* 在下载 iOS 构建时，出现一个对话框并显示以下错误：`No Install - Your device is not provisioned for this build.`
* 尝试从共享页面下载构建时，出现一个 iOS 对话框并显示以下错误：`Unable to Download App`。
* 成功下载构建后，出现一个 iOS 对话框并显示以下错误：`Unable to Download Application - AppName could not be installed at this time.`

### 确定问题##identify-the-issue

在控制台中查看问题：

1. 将测试设备连接到用于开发的 macOS 设备。
2. 打开 XCode 管理器。
3. 在 **Devices（设备）** 窗口中，从侧栏中选择连接的设备。
4. 选择控制台，然后重新安装应用程序。

## 潜在原因##potential-causes

可能存在多种原因：

* 设备存储空间已满。
* 当前会话存在问题。
* 设备 UDID 未在移动资源调配配置文件中注册。
* 设备 UDID 是虚假的 UDID。
* 按需分发资源调配配置文件已损坏。
* 设备是从备份中恢复的，导致设备会话失效。
* 用于资源调配配置文件的证书**已撤销**或**已过期**。
* 出现网络超时。
* 构建的架构设置与设备不兼容。有时，如果在构建时启用 **Build Active Architecture Only（仅构建活动架构）** 设置，就会发生这种情况。
* 未使用移动端 Safari 浏览器。
* 以**无痕**模式使用移动端 Safari 浏览器。

> **Note:**
>
> **注意**：可能还有其他原因。某些问题的解决方案可能仅适用于部分 iOS 版本。

## 解决方案##resolutions

### 无法安装 - 您的设备未针对此构建进行资源调配。##no-install---your-device-is-not-provisioned-for-this-build

iOS 构建下载会显示以下消息：`No Install - Your device is not provisioned for this build.`

#### 注册 UDID##register-your-udid

出现此错误消息的最可能原因是您的 UDID 未在开发或分发移动资源调配配置文件中注册。

要查找和注册 UDID，请执行以下操作：

1. 查找 UDID
   1. 将设备连接到 Mac。
   2. 打开 Finder。
   3. 在侧栏中选择您的 iPhone 设备。
   4. UDID 会显示在设备名称下方的 General（通用）选项卡中。
2. 按照说明[注册 UDID](../../sign-build-artifacts/sign-an-ios-application#add-the-udid-in-the-apple-developer-portal)。

> **Note:**
>
> **注意：** 一些提供 UDID 的第三方应用程序可能会报告虚假的 UDID（可能以 `fffff` 开头）。请始终使用系统报告的 UDID。

#### 重置设备会话##reset-your-device-session

有时，如果设备的当前会话出现问题，例如您恢复了手机备份或会话 cookie 损坏，可能会收到此错误消息。要解决会话问题，请转到[设备重置页面](https://build.cloud.unity3d.com/device/reset)以重置设备会话信息。然后，该页面会将您重定向回 Unity Build Automation 页面。如果未重定向，请访问 [Unity Dashboard](https://dashboard.unity3d.com/) 登录并再次注销以完成重置过程。

#### 使用 Safari 浏览器##use-safari

使用 Safari 作为浏览器，并确保它不是处于无痕模式。要清除 Safari 浏览器的缓存和 Cookie，请转到 **Safari** > **Settings（设置）**。不保证 Unity Build Automation 在 iOS 上的其他浏览器中能正常工作。

### 无法下载应用程序##unable-to-download-app

尝试下载构建时显示 `Unable to Download App` 对话框。

#### 测试连接##test-your-connection

如果互联网连接不够稳定而无法下载构建，就可能会发生此错误。请与互联网服务提供商确认您的连接稳定，并确保设备上有足够的可用空间。要检查问题是否出在互联网连接上，可以使用 3G 或有线连接等其他连接进行测试。

#### 更新证书##update-your-certificate

如果用于资源调配配置文件的证书被撤销或删除，就可能会发生此错误。要解决此问题，请[更新证书](../../sign-build-artifacts/sign-an-ios-application#create-a-certificate)并[重新生成资源调配配置文件](../../sign-build-artifacts/sign-an-ios-application#create-a-development-provisioning-profile)。在 [Unity Dashboard](https://cloud.unity.com/home/organizations/default/projects/default/devops/overview) 中更新文件后，请重新构建应用程序以应用更改。

有关更多可能的原因和故障排除步骤，请参阅此[堆栈溢出帖子](http://stackoverflow.com/questions/25733299/ios-8-cant-install-enterprise-app)。

### 无法下载应用程序 - 此时无法安装 AppName##unable-to-download-application---appname-could-not-be-installed-at-this-time

在成功下载后，以 iOS 对话框形式显示 `Unable to Download Application - AppName could not be installed at this time` 错误。

除了上述解决方案外，请确保要用于安装构建的设备支持该构建的架构。

有关更多可能的原因和故障排除步骤，请参阅此[堆栈溢出帖子](http://stackoverflow.com/questions/14375387/iphone-app-could-not-be-installed-at-this-time%20)。

## 其他资源##additional-resources

* 有关 iOS 构建过程的更多信息，请参阅[为 iOS 应用程序签名](/build-automation/sign-build-artifacts/sign-an-ios-application.md)。

* 在 [Unity 讨论网站](https://discussions.unity.com/t/unable-to-download-app/605172)上的论坛上讨论该问题。

* 如需了解有关分发配置文件的更多信息，请参阅 Apple 关于[解决资源调配配置文件无效状态](https://developer.apple.com/library/archive/qa/qa1878/_index.html)的文档。
