我正在用Xamarin.iOS做一个项目,它碰巧通过一个构建服务器(在Mac上运行)。
构建似乎通常会失败,但即使使用--verbose或-v,它似乎也会默默地失败。例如,现在,在为iOS优化图形之后,它似乎失败了。构建的最后一行代码是Build complete -- 0 errors, 0 warnings。但后来我从詹金斯那里得到了一个Build step 'Execute shell' marked build as failure。我知道这是mdtool构建中的一个失败,因为我以前有过一个成功的构建,而且我知道在它真正成功之前还有几个步骤。
成功过程的下一步应该是Compiling to native code,但由于某种原因,它在到达该步骤之前失败了,或者至少将其输出到控制台。
提前感谢您的帮助!
发布于 2013-03-05 22:15:39
在执行shell程序时,mdtool构建逻辑中有一些地方没有正确捕获异常,我(希望)在Xamarin Studio4.0.2中修复了这些程序。
如果不查看完整的构建日志,就很难确定,但可能是因为它试图执行的任何shell命令要么不存在,要么没有标记为execute权限。
我能想到的mdtool为iOS构建调用的程序有:
pngcrush (优化和files)plutil (优化.plist和.strings (尽管在编译为本机代码后会调用它))
当然还有mtouch,它是用来将IL编译成本机代码的。mtouch命令是Xamarin.iOS的一部分,而其他3个实用程序是Mac (或Xcode)的一部分。
一周或两周前我帮助调试的另一个有类似问题的人的解决方案是因为他修改了launchd启动应用程序的路径环境,不包括/usr/bin,因此mdtool找不到上面列出的实用程序。
我不太熟悉Jenkins (我知道我们在Xamarin使用它,但我不是使用它的团队的一员),所以请确保它启动mdtool的路径环境设置为include /usr/bin。
希望这能有所帮助。
https://stackoverflow.com/questions/15209585
复制相似问题