如何使用mdtool构建MonoTouch项目
问题描述:
我试图在Jenkins构建上设置MonoTouch(Xamarin.iOS 2.0)项目。我有一个用于构建的用户,并且已将所有必需的证书和密钥添加到他们的钥匙串中。如何使用mdtool构建MonoTouch项目
当我尝试在终端中使用mdtool(如here和here)。具体来说,我运行的命令是"/Applications/Xamarin Studio.app/Contents/MacOS/mdtool" -v build <path to .sln>
。当我这样做,我得到这个输出
MonoDevelop Build tool
ERROR [2013-02-28 10:31:36Z]: Android SDK not found, needed by Xamarin.Android add in
Loading solution: <path to .sln>
Loading solution: <path to .sln>
Loading projects ..
Building Solution: <Project name> (Ad-Hoc|iPhone)
Building: <project name> (Ad-Hoc|iPhone)
在这一点上,构建停止。如果我在我自己的用户下运行这个相同的命令,而不是詹金斯用户,这可以按预期工作。我检查过我确实拥有jenkins用户中的所有证书和密钥,并且所有配置配置文件均可通过XCode访问。我有点用这种方式结束,并非常感谢一些帮助。
更令人困惑的是,如果我尝试使用jenkins用户下的Xamarin Studio来构建这个项目,那么这个过程会成功而没有问题。但为了实现构建过程的自动化,我必须编写一个可以通过shell运行的命令。
答
这是因为产品许可证文件安装在您的用户帐户(它的工作原理)上,但是在您的构建服务器帐户下(无法使用)无法找到。
您需要的许可文件复制从:
/Users/***you username**/Library/MonoTouch/License.v2
到:
/Users/***your build server account**/Library/MonoTouch/License.v2
注意Xamarin.iOS的某些版本的许可证(如启动和独立)不允许你这样做(所以它可能无法正常工作)。
雅,这完全奏效。希望我真的得到了这方面的错误信息,我可能可以在昨天解决这个问题。 – 2013-02-28 21:52:30