Windows上的Xamarin工作流



我知道Mac或Mac服务(例如MacInCloud.com)对于构建和提交iOS应用程序是必要的。

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

我们需要在整个开发周期中编写代码、测试和调试。Xamarin在Windows上运行时,这是如何工作的?在实际的开发周期中,我该如何看待我的移动应用程序的外观或行为?

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

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

我将在以下几个部分回答您的问题:编码、调试、测试

编码

您将使用Visual Studio编写代码。iOS和Android代码将使用C#编写。您将可以访问iOS和Android的UI Designer来编辑布局文件和情节提要/xib。对于第三方图书馆,有NuGet可以满足您的需求。

调试

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

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

对于Android,您可以访问Android Emulator Manager来添加要调试的模拟器,也可以像使用Android Studio一样将应用程序部署到物理手机。

测试

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

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

我一直在开发一款针对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上那样舒服,因为我在Windows上有我所有熟悉的开发工具。因此,问题是如何在PC和Mac之间共享项目文件,这样我就可以在PC上编辑和编译,然后转到Mac进行最终测试。

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

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

更新:

这个过程对我来说仍然有效。我已经采取了额外的步骤,在VS Mac上进行发布配置,并将我的应用程序发布到app Store Connect。那次经历令人费解和沮丧,但现在它奏效了,我有人通过TestFlight测试我的应用程序。

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

最新更新