【问题标题】:Build Xamarin.Mac project from terminal从终端构建 Xamarin.Mac 项目
【发布时间】:2016-08-09 09:56:04
【问题描述】:

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

输入:

$ 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.

我认为它现在是免费的,因为微软收购了它。 AFAIK 也不再提供商业版。

还有办法从终端构建吗?我正在使用最新的 Xamarin 版本。

【问题讨论】:

    标签: xamarin build headless xamarin.mac mdtool


    【解决方案1】:

    如果你正在构建一个基于Xamarn.MacUnified的项目,你可以使用xbuild

    调试:

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

    发布:

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

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

    注意:“新”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
    

    注意:我刚刚对此进行了测试,它仍然出于某种原因向“activation.xamarin.com”发出请求,但在社区版上为我正确构建。我通常不再开发基于 Classic-API 的应用程序,因此不会通过 mdtool 构建非常多)。

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

    【讨论】:

      【解决方案2】:

      请注意,现在在 Visual Studio 2017 for Mac 中,mdtool 已替换为 /Applications/Visual Studio.app 文件夹下的 vstool。

      我的构建线如下所示:

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

      另见:mdtool creates IPA file when using release but not when using debug configuration

      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,它提供了更多启发。非常熟悉该项目的人向我展示了如何使用特定命令。

      【讨论】:

        猜你喜欢
        • 2011-11-21
        • 2019-01-13
        • 2018-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-19
        • 2017-12-13
        相关资源
        最近更新 更多