Xamarin的构建.Mac项目从终端



我正在尝试构建Xamarin。Mac应用程序从终端使用mdtool .

输入:

$ Applications/Xamarin Studio.app/Contents/MacOS/mdtool build -p:"Project" -t:Build -c:"Release" "../../Solution.sln"

输出:

error: The Xamarin Studio Community Edition of Xamarin.Mac does not support building outside of Xamarin Studio. Please go to https://store.xamarin.com to upgrade to the Business Edition.

我以为它现在是免费的,因为微软的收购。当然也没有商业版了。

还有从终端构建的方法吗?我用的是最新的Xamarin版本

如果您正在构建一个基于Xamarn.Mac Unified的项目,您可以使用xbuild:

调试:

xbuild CLIBuild.csproj /target:Build /p:Configuration=Debug

发布:

xbuild CLIBuild.csproj /target:Build /p:Configuration=Release

注意:对于"发布"版本,请确保您的Apple OS-X代码签名密钥已安装在keychain

注意:"新的"x-plat OS-X msbuild (14.1.0.0)还不能完全工作。它没有包括某些参考资料。我不知道这是msbuild 问题还是Xamarin.Mac .targets文件中的一个问题

如果你正在构建一个基于Xamarin.Mac Classic的项目,下面的代码应该可以工作:

/Applications/Xamarin Studio.app/Contents/MacOS/mdtool build CLIBuild.csproj

注意:我刚刚测试了这个,它仍然会因为某种原因请求"activationxamarin.com",但在社区版上为我构建正确。我通常不会再开发基于经典api的应用程序,因此不会通过mdtool构建很多)。

我会报告这个问题@ https://bugzilla.xamarin.com

2022年10月更新:对于Mac 2022的Visual Studio, msbuild命令是推荐和支持的vstool替代品,它已经取代了mdtool。

msbuild -target:Build "my.sln" -property:Configuration="Debug" -property:Platform="iPhone" 

原始回答注意,现在在Visual Studio 2017 for Mac中,mdtool被/Applications/Visual Studio下的vstool所取代。应用程序文件夹。

我的构建行看起来像这样:

/Applications/Visual Studio.app/Contents/MacOS/vstool --verbose build --f --target:Build --configuration:"Debug|iPhone" --buildfile:my.sln > $BuildResults

请参见:mdtool在使用发布时创建IPA文件,但在使用调试配置时不创建IPA文件

更新2019年1月,我在网上发现很少有关于vstool到底能做什么以及如何使用它的指导。我相信这是微软版本的mdtool,它是Github Monodevelop项目的一部分(mono/Monodevelop)。mdtool源代码位于monodevelop/main/src/tools文件夹下。它似乎是Monodevelop/Visual Studio安装中可用的各种工具的运行器。

运行
/Applications/Visual Studio.app/Contents/MacOS/vstool -q 

将列出可用的工具。

还有一个手册页作为Monodevelop构建过程的一部分,在Monodevelop/main/man提供了更多的启发。一个非常熟悉这个项目的人向我展示了如何使用这个特定的命令。

最新更新