【问题标题】:Xamarin workflow on WindowsWindows 上的 Xamarin 工作流
【发布时间】:2018-04-11 21:56:03
【问题描述】:

我知道 Mac 或 Mac 服务,例如MacInCloud.com 是构建和提交 iOS 应用程序所必需的。

我的问题是关于在 Visual Studio 2017 上使用 Xamarin 在 Windows 上构建应用程序的实际工作流程。

我们需要在整个开发周期中编写代码、测试和调试。这如何与在 Windows 上运行的 Xamarin 一起工作?在实际开发周期中,我如何真正看到我的移动应用的外观或行为?

在 Visual Studio 中开发我的 Web 应用程序时,我需要多次往返浏览器和 VS,以便查看我的代码的结果。这如何与在 Windows 上运行的 Xamarin 一起工作? Xamarin Live Player 是开发周期的唯一选择吗?是否有通过 MacInCloud 或类似服务的解决方案,从而无需将设备绑定到开发机器?

我只是想了解如何在 Windows 上为 Xamarin 开发人员创建一个健康的开发周期。

【问题讨论】:

  • 您可以将 Xamarin Live Player 用于有限 UI 设计预览/编辑/预览周期,但对于 Windows 上 Xamarin.iOS 的“健康开发周期”,您需要用于构建、iPhone/iPad 模拟器、物理设备测试等的全时连接 Mac...最后,全时配对至少无头 MacMini 将是实现即“健康的发展周期”。请记住,Windows 上的远程 iOS 模拟器仅通过 VS Enterprise 提供。

标签: visual-studio xamarin xamarin.ios visual-studio-2017


【解决方案1】:

我将分几个部分回答你的问题:编码、调试、测试

编码

您将使用 Visual Studio 编写代码。 iOS 和 Android 代码将使用 C# 编写。您将可以访问 iOS 和 Android 的 UI Designer 来编辑布局文件和故事板/xib。对于 3rd 方库,NuGet 可以满足您的需求。

调试

您可以在不连接到 Mac/MacInCloud 的情况下使用 Xamarin Live Player 进行基本预览。但是,iOS 的某些功能在 Xamarin Live Player 中不可用(例如不支持 xibs 文件...)。

如果您设置连接到 Mac,您将能够看到您连接到的 Mac 中可用的模拟器列表。默认情况下,如果你调试它,模拟器仍然会显示在 Mac 中。然后您将需要使用 VMWare 或远程进入 Mac 以检查模拟器输出。如果您拥有 Visual Studio Enterprise 许可证,则可以访问远程 iOS 模拟器功能。您需要打开该选项。之后,您将能够在您的 Windows 机器上看到一个远程 iOS 模拟器,而无需再远程进入 Mac 机器。要在实际的 iOS 设备中进行调试,您仍然需要将设备插入 Mac。此前(1 年多前),Xamarin 宣布他们正在开发“iOS USB 远程处理”以允许您将 iOS 设备插入 Windows 机器并在其上进行调试。但它直到现在才发布。

对于 Android,您可以访问 Android Emulator Manager 以添加模拟器进行调试,或者您可以像使用 Android Studio 一样将应用部署到物理手机。

测试

这部分我将参考 Xamarin.UITest。您将能够在 Visual Studio 中用 C# 编写 UITest 代码。 Xamarin 拥有产品“Xamarin Test Cloud”,允许您上传测试代码和二进制文件,然后定期在云中运行您的测试。如果你想在你的机器上本地运行测试,你将只能在 windows 机器上运行 Android UITest。要在本地运行 iOS UITest,您将只能在 Mac 机器上运行它。使用 Mac,您还可以运行 Android UITest。

【讨论】:

    【解决方案2】:

    您可以使用模拟器/模拟器代替设备。对于 iOS,模拟器将在您连接的 Mac Build Host 上运行。您可以在 Visual Studio -> Xamarin.iOS 选项中选择“远程 iOS 模拟器”选项,您将能够与模拟器进行交互,而无需 RDP/VNC/查看 Mac。对于 android,你可以在 Window 中运行一个模拟器并像这样与之交互。使用您的网络应用程序比较,您将使用模拟器/模拟器而不是浏览器,但在大多数情况下,该过程将是相似的。

    【讨论】:

    • 我可以使用 MacInCloud 这样的服务来做到这一点吗?如果有,实用吗?如果要上传的东西很多,就不太实用了。
    • 除了 CI 构建代理,我没有使用过 MacInCloud,所以我不知道。
    【解决方案3】:

    我一直在开发针对 iOS 和 Android 的 Xamarin MVVM 应用程序。我最初在 Windows 上使用 VS 2022 和通过 USB 连接的 iPhone 进行 iOS 开发。我知道我最终将不得不迁移到 Mac 进行最终配置,但我最终比计划更早地采取了这一痛苦的步骤,因为某些 Xamarin 功能无法在 Windows 上运行。首先,我无法将我的应用程序图标设置为 Xamarin 默认值以外的任何内容,然后 Xamarin.Essentials.FilePicker 不会选择文件:

    https://github.com/xamarin/Essentials/issues/1710

    因此,经过一周的努力,我终于在 Mac 上构建和部署了我的项目。但是,我在 Mac 上工作不如在拥有所有熟悉开发工具的 Windows 上工作那么舒服。那么问题来了,如何在 PC 和 Mac 之间共享项目文件,以便我可以在 PC 上编辑和编译,然后移动到 Mac 进行最终测试。

    起初我尝试使用 iCloud,但我无法让文件在 PC 和 Mac 上的共享文件夹之间可靠地同步。我习惯了 Dropbox 和 OneDrive,它们按预期工作。 iCloud 没那么多。

    所以我一直在做的是将更改提交并推送到 github,然后将更改拉入 Mac 上的项目中。它速度快,并且具有使用异地服务器进行版本控制的额外好处。我对这个工作流程很满意,到时候在 Apple Store 上发布应用程序应该是一件容易的事。

    更新:

    这个过程仍然对我有用。我已经采取了在 VS Mac 上进行发布配置并将我的应用程序发布到 App Store Connect 的额外步骤。这种体验令人费解且令人沮丧,但它现在可以正常工作,而且我有人通过 TestFlight 测试我的应用。

    一个小问题是,当在 VS Windows 上的项目属性中选择自动 iOS 捆绑签名时,此更改会被推送到 Mac 端并在调试下导致构建错误,直到我在 Mac 上选择自动配置文件。不知何故,它被设置为 Windows 端的通配符配置文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      相关资源
      最近更新 更多