如何使用xamarin / visual studio连接到远程mac?

时间:2017-03-13 02:09:23

标签: c# macos visual-studio xamarin.ios

刚刚安装了Visual Studio Enterprise 2017,希望使用Xamarin开发iOS应用程序,由于与Xamarin的连接问题,我过去放弃了这些应用程序。

无论我做什么,Xamarin都无法可靠地连接到网络上的Mac。它确实连接了一次,但怀疑我的旧Mac太慢以至于无法避免Xamarin的超时问题,我从MacInCloud.com租了一台云Mac。 Xamarin仍然无法连接到遥控器,即使我可以通过Putty SSH连接到它。

有没有人有一个可靠的系统,或者知道一个很好的方法来解决这个问题? Xamarin错误报告和日志记录似乎没有任何帮助。

2 个答案:

答案 0 :(得分:1)

在xamarin开发者页面中查看此示例:

https://developer.xamarin.com/guides/ios/getting_started/installation/windows/connecting-to-mac/

Windows安装程序 确保在Windows计算机上安装Xamarin工具。

连接 有两种方法可以连接到Mac构建主机:

在iOS工具栏上:

或浏览工具> Visual Studio中的选项,选择Xamarin> iOS设置,然后单击查找Xamarin Mac代理按钮:

导航到任何一种方式都将导致Mac Agent对话框,如下所示:

这将显示以前已连接并存储为已知计算机的所有计算机的列表,或者可用于远程登录的计算机。

通过双击Mac来连接它来选择Mac。第一次连接到Mac时,系统将提示您输入Mac用户凭据(必须是管理员帐户)以允许远程连接:

代理将使用这些凭据创建与Mac的新SSH连接。如果成功,将创建一个SSH密钥,并将在该Mac上的authorized_keys文件中注册。在后续连接中,代理将使用用户名和密钥文件连接到最近连接的已知构建主机。

注意:输入凭据时,您必须使用用户名而不是全名。您可以使用终端中的whoami命令找到它。例如,从下面的屏幕截图中,帐户名称将是amyb而不是Amy Burns:
成功建立连接后,它将显示在“主机选择”对话框中,旁边有一个连接图标,如下所示:

任何时候都只能连接一台Mac。

列表中的每台计算机,无论是连接还是其他,都会在右键单击时显示上下文菜单,允许您根据需要连接,断开连接或忘记Mac:

如果您选择忘记此Mac,则需要重新输入您的凭据才能再次连接到它。

手动添加Mac 在某些情况下,如果您无法在“主机选择”对话框中看到其mDNS名称,则可能希望手动添加Mac。为此,请按照以下步骤操作:

通过浏览系统偏好设置>找到Mac的IP地址。分享>在Mac上远程登录:

或者,如果您更喜欢使用命令行,可以通过在终端中输入ipconfig getifaddr en0来找到您的IP地址(请注意,根据连接的类型,变量可能是en1,en2等):

返回Visual Studio,在Host Selection对话框中,选择Add Mac ...:

在“添加Mac”对话框中输入Mac的IP地址,然后单击“添加”:

最后,输入Mac管理员帐户的用户名(非全名)和相应的密码:

单击“登录”后,Visual Studio将使用SSH登录Mac计算机,并将此Mac添加为已知计算机。

命令行支持 新代理还支持从命令行构建Xamarin.iOS配置。要使用它,您需要将以下必需参数传递给MSBuild:

ServerAddress - Mac服务器的IP地址。 ServerUser - 用于登录Mac Server的用户名(非全名)。 ServerPassword - 用于登录Mac主机的密码(可选)。 不需要ServerPassword参数。

相反,第一次通过使用Visual Studio或命令行传递密码,对于特定的Windows,Mac和用户配置,将生成密钥对并将其存储在Windows计算机上以供将来使用。它将位于%localappdata%\ Xamarin \ MonoTouch \ id_rsa中。如果未传递ServerPassword参数,则将使用id_rsa密钥文件进行身份验证。

使用带密码mypassword的xamUser帐户连接到Mac 10.211.55.2的示例命令如下所示:

C:\ samples \ App1> msbuild App1.sln /p:ServerAddress=10.211.55.2 / p:ServerUser = xamUser / p:Platform = iPhoneSimulator / p:ServerPassword = mypassword

答案 1 :(得分:0)

自从我升级到VS 2017以来遇到了同样的问题。刚才发生了两件事:

  1. 将我的Macincloud MacOS升级到Sierra。仍然无法连接。
  2. 注意到VS 2017的更新。安装它。
  3. 现在我可以连接Mac Agent并在Mac上运行模拟。