因此,我在Windows上有一个要编译的解决方案,以便可以在Mac上使用。在没有Mac的情况下该怎么办?
感谢您的帮助。
答案 0 :(得分:1)
我看到你是一个新的贡献者。欢迎!
我的理解是,iOS或MacOS代码需要在Mac上构建,并且根据Apple制定的政策这是不可商议的。这是当前的链接,该链接描述了如何pair your windows machine to a remote mac会在何时自动进行构建。
您甚至可以通过无线进行部署。例如,按照我的设置方式,我在Windows计算机上构建项目,该项目通过无线方式与MacBook Pro配对,而MacBook Pro通过无线方式部署到iPhone。效果很好。
您的问题的另一个方面是,虽然可以通过使用NET Core来支持或支持更好的NET Standard的代码来使应用程序的逻辑可移植,但问题的症结常常在于UI代码是特定于平台的。
Xamarin移动跨平台开发是Visual Studio 2019社区免费版所支持的一种方法,它没有表达是好是坏的意见。 (可以与Xamarin.Forms和Xamarin.Essentials nuGet软件包一起包含在您的项目中。)这样,您只能使用xaml创建一次UI,而该xaml可以跨设备使用。
我已经使用Xamarin多年了,以我的经验,它在我移植的Android / iOS / UWP应用中表现良好。我相信Xamarin for MacOS现在也在线,但我没有使用过。
您的问题是一个很好的问题,但范围很广。我希望此信息至少能帮助您入门!
答案 1 :(得分:1)
您最好使用Linux(或WSL)运行dotnet publish
(因为您需要调用chmod
来操纵执行权限)。我有a sample PowerShell script here。
简而言之,.NET Core 3.1上的executable
需要以下内容。
dotnet publish --self-contained -r osx-x64 -c release -o ..\output\darwin_x64 -p:PublishSingleFile=true
Set-Location output
Set-Location darwin_x64
chmod a+x executable
Compress-Archive * -DestinationPath ..\darwin_x64.zip
Set-Location ..
但是,此方法仅针对控制台应用程序。具有用户界面的应用程序需要花费更多的精力才能移植到Mac,在大多数情况下,您需要Mac。 设置位置..
答案 2 :(得分:0)
据我所知,您只能为.NET core进行编码,但是编译必须在Mac中完成