我正在开发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
,但由于某种原因,在达到此目的之前它失败了,或者至少将其输出到控制台。
提前感谢您的帮助!
答案 0 :(得分:2)
mdtool构建逻辑中有一些地方在执行我希望为Xamarin Studio 4.0.2修复的shell程序时没有正确捕获异常。
如果没有看到完整的构建日志,很难确定,但可能是它尝试执行的任何shell命令都不存在或者没有标记执行权限。
我能想到的程序是mdtool将为iOS构建调用的:
pngcrush
(优化.png文件)plutil
(优化.plist和.strings文件)codesign
(虽然这个在编译为本机代码后被称为)当然,mtouch
是用于将IL编译为本机代码的内容。 mtouch
命令是Xamarin.iOS的一部分,而其他3个实用程序是Mac OS X(或Xcode)的一部分。
我帮助调试一周或两周之前遇到类似问题的其他人的解决方案是因为他修改了launchd
启动应用程序的PATH环境而不包括/ usr / bin,因此mdtool不能找不到上面列出的实用程序。
我对Jenkins不是很熟悉(我知道我们在Xamarin使用它,但我不是团队的一员),所以确保它启动mdtool的PATH环境设置为包含/ USR / bin中。
希望有所帮助。