Table of Contents

iOS

Warning

This page may be out of date and should only be used as a reference.

要将游戏部署到 iOS 设备,你需要将设备连接到装有 Xamarin 的 Mac。

  1. 确保 PC 和 Mac 上都已安装 Xamarin。有关如何安装和设置 Xamarin 的说明,请参阅 Xamarin 文档:

  2. 确保你的 iOS 设备已完成预配。有关说明,请参阅 Xamarin 文档中的设备预配(Device provisioning)。

  3. 确保 Stride 项目中已添加 iOS 平台。为此,在 Game Studio 中右键单击解决方案,选择 Update package > Update Platforms,并确保选中了 iOS。

    添加 iOS

    有关在 Game Studio 中添加平台的更多信息,请参阅添加或移除平台。

  4. 在 Visual Studio 中打开你的解决方案。

    Tip

    要在 Visual Studio 中从 Game Studio 打开项目,请在 Game Studio 工具栏中点击 在 IDE 中打开(Open in IDE)。

  5. 在 Visual Studio 工具栏中,点击 Xamarin 按钮。

    连接到 Xamarin

    Xamarin Agent 将打开。

    Xamarin agent

  6. 通过 Xamarin 连接到 Mac。有关说明,请参阅 Xamarin 文档中的 Introduction to Xamarin iOS for Visual Studio。

  7. 在解决方案资源管理器中,右键单击该项目并选择 Set as StartUp Project。

    设为启动项目

  8. 在 Solution Platforms 菜单中,选择 iPhone 可在物理 iOS 设备(包括 iPad)上构建,选择 iPhoneSimulator 则可为模拟器构建。模拟器可以在你的机器上模拟 iOS 设备,但有一些缺点(见下文)。

    解决方案平台

  9. 在 Visual Studio 工具栏中,选择你要为之构建的 iOS 设备。

    选择设备

  10. 在解决方案资源管理器中,打开 info.plist。

    选择 info 文件

  11. 如果要创建 release 构建,请设置包标识符(bundle identifier)。它是你的应用程序的唯一 ID。

    选择包 ID

  12. 如果要部署到 iPad,请在 Targeted device family 下点击 添加设备图标。

    已添加 iPad

加快 iOS 设备上的构建速度

在 iOS 设备上构建需要很长时间。这是因为:

  • Mac 需要为不同的设备提前(AOT)编译代码

  • Apple 的沙盒系统不允许增量更新包,因此每次更改后 Mac 都需要在设备上完全重新部署应用程序

要加快代码编译速度,请在解决方案资源管理器中右键单击 iOS 项目并选择 Properties。

项目属性

  • 在 Linker Behavior 下,选择 Don't link。
  • 在 Supported Architectures 下,只选择调试设备所用的架构。
  • 禁用 Strip native debugging symbols。
  • 启用 incremental builds(只有两次执行之间发生变化的代码才会被 AOT 编译)

更多信息请参阅 Xamarin 文档中的 iOS Build Mechanics。有关性能分析的信息,请参阅 Using instruments to detect native leaks using markheap。

要让每次重新部署更快,请尽可能减小调试包的体积。

  • 在 Game Studio 中,减小项目中纹理的 Size。

  • 删除未使用的资产。

  • 逐个测试场景,而不是同时加载它们。

  • 在 iPhone 模拟器而不是真实设备上调试应用程序。不过,模拟器上的执行速度较慢,并且会产生一些渲染伪影,因此我们不建议用它来调试实时图形。

在 iOS 上编译着色器

由于在 iPhone 设备上将 Stride 着色器转换为 OpenGL 着色器非常缓慢,我们建议你远程(即在 Game Studio 中)进行转换。

我们推荐的工作流程是:

  1. 在 Windows 上执行应用程序。这会创建着色器变体(shader permutations)。

    新效果

  2. 在 Game Studio 中导入新的着色器。这会生成一份效果日志(effect log)。

    效果日志

  3. 保存并在 iOS 上运行游戏。

理想情况下,这会在远程创建所有着色器变体,因此你无需在设备上进行转换。不过,由于支持的屏幕分辨率等差异,仍可能出现新的变体。更多信息(包括如何在 iOS 上远程编译着色器)请参阅编译着色器。

另请参阅