2013-02-28 64 views
3

我试图在Jenkins构建上设置MonoTouch(Xamarin.iOS 2.0)项目。我有一个用于构建的用户,并且已将所有必需的证书和密钥添加到他们的钥匙串中。如何使用mdtool构建MonoTouch项目

当我尝试在终端中使用mdtool(如herehere)。具体来说,我运行的命令是"/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运行的命令。

回答

4

这是因为产品许可证文件安装在您的用户帐户(它的工作原理)上,但是在您的构建服务器帐户下(无法使用)无法找到。

您需要的许可文件复制从:

/Users/***you username**/Library/MonoTouch/License.v2

到:

/Users/***your build server account**/Library/MonoTouch/License.v2

注意Xamarin.iOS的某些版本的许可证(如启动和独立)不允许你这样做(所以它可能无法正常工作)。

+0

雅,这完全奏效。希望我真的得到了这方面的错误信息,我可能可以在昨天解决这个问题。 – 2013-02-28 21:52:30