我正在尝试在Jenkins构建上设置MonoTouch(Xamarin.iOS 2.0)项目。我有一个用于构建的用户,我已经将所有必需的证书和密钥添加到他们的钥匙串中。
当我尝试在终端中使用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用户,则按预期工作。我已经检查过我确实拥有jenkins用户中的所有证书和密钥,并且所有配置文件都可以通过XCode访问。我有点心情,并且真的很感激一些帮助。
更令人困惑的是,如果我尝试在jenkins用户下使用Xamarin Studio构建此项目,则该过程成功而没有问题。但是为了自动化构建过程,我必须创建一个可以通过shell运行的命令。
答案 0 :(得分:4)
这是因为产品许可证文件安装在您的用户帐户(工作地点)上,但无法在您的构建服务器帐户下找到(它不起作用)。
您需要从以下位置复制许可文件:
/Users/***you username**/Library/MonoTouch/License.v2
为:
/Users/***your build server account**/Library/MonoTouch/License.v2
请注意,某些版本的Xamarin.iOS(例如Starter和Indie)的许可证不允许您这样做(因此可能无效)。