我正在尝试构建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提供了更多的启发。一个非常熟悉这个项目的人向我展示了如何使用这个特定的命令。