0

我正在 Xamarin.iOS 中开发一个项目,它恰好通过一个构建服务器(在 Mac 上运行)。

构建似乎通常会失败,但即使使用--verboseor-v它似乎也会默默地失败。例如,现在,在为 iOS 优化图形后似乎失败了。构建的最后一行说Build complete -- 0 errors, 0 warnings。但后来我Build step 'Execute shell' marked build as failure从詹金斯那里得到了一个。我知道这是 mdtool 构建的失败,因为我之前已经成功构建过,而且我知道在它真正成功之前还有几个步骤。

成功过程的下一步应该是Compiling to native code,但由于某种原因它在到达之前失败了,或者至少将其输出到控制台。

在此先感谢您的帮助!

4

1 回答 1

2

mdtool 构建逻辑中有几个地方在执行我(希望)为 Xamarin Studio 4.0.2 修复的 shell 程序时没有正确捕获异常。

如果没有看到完整的构建日志,很难确定,但可能是它尝试执行的任何 shell 命令不存在或没有标记为执行权限。

我能想到的 mdtool 将为 iOS 构建调用的程序是:

  1. pngcrush(优化 .png 文件)
  2. plutil(优化 .plist 和 .strings 文件)
  3. codesign(虽然这个在编译为本机代码后被调用)

当然,mtouch这是用于将 IL 编译为本机代码的方法。该mtouch命令是 Xamarin.iOS 的一部分,而其他 3 个实用程序是 Mac OS X(或 Xcode)的一部分。

我在一两周前帮助调试的其他有类似问题的人的解决方案是因为他修改了launchd启动应用程序的 PATH 环境,不包括 /usr/bin,因此 mdtool 找不到上面列出的实用程序.

我对 Jenkins 不是很熟悉(我知道我们在 Xamarin 中使用它,但我不是这样做的团队的一员),因此请确保它启动 mdtool 的 PATH 环境设置为包含 /usr/bin .

希望有帮助。

于 2013-03-05T14:15:39.430 回答