3

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

当我尝试在终端中使用 mdtool(如此此处所述)时。具体来说,我运行的命令是. 当我这样做时,我得到这个输出"/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 运行的命令。

4

1 回答 1

4

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

您需要从以下位置复制许可证文件:

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

到:

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

请注意,某些 Xamarin.iOS 版本(例如 Starter 和 Indie)的许可证不允许您执行此操作(因此它可能不起作用)。

于 2013-02-28T20:26:20.593 回答