2013-03-04 3 views
0

Я работаю над проектом в Xamarin.iOS, и, случается, он проходит через сервер сборки (работает на Mac).Дополнительная подробная информация из mdtool?

Похоже, что сборка не работает, но даже с --verbose или -v кажется, что безмолвно. Например, прямо сейчас, похоже, он не работает после оптимизации графики для iOS. Последняя строка сборки говорит Build complete -- 0 errors, 0 warnings. Но потом я получаю Build step 'Execute shell' marked build as failure от Дженкинса. Я знаю, что это ошибка в сборке mdtool, потому что раньше у меня была успешная сборка, и я знаю, что еще есть несколько шагов, прежде чем она на самом деле преуспеет.

Следующий шаг в успешном процессе должен быть Compiling to native code, но по какой-то причине он не работает, прежде чем добираться до него или, по крайней мере, выводить его на консоль.

Заранее благодарим за помощь!

ответ

2

Существует несколько мест в логике сборки mdtool, которые неправильно выполняли исключения при выполнении программ оболочки, которые я (надеюсь) исправил для Xamarin Studio 4.0.2.

Не видя полного журнала сборки, это сложно сказать наверняка, но может быть, что любая команда оболочки, которую она пытается выполнить, не существует или не помечена разрешениями на выполнение.

Программы, которые я могу вспомнить с верхней части моей головы, что mdtool будет вызывать для IOS сборки являются:

  1. pngcrush (оптимизирует .png файлы)
  2. plutil (оптимизирует .plist и. строки файлов)
  3. codesign (хотя это один вызывается после компиляции в машинный код)

и, конечно, mtouch, что и используется для компиляции IL в собственный код. Команда mtouch является частью Xamarin.iOS, а остальные 3 утилиты являются частью Mac OS X (или Xcode).

Решение для другого человека с аналогичной проблемой, которую я помог отлаживать неделю или 2 назад, состояло в том, что он изменил свою среду PATH, что launchd запустил приложения, чтобы не включать/usr/bin, и поэтому mdtool не смог найти перечисленные выше.

Я не очень хорошо знаком с Дженкинсом (я знаю, что мы используем его на Xamarin, но я не являюсь частью команды, которая делает), поэтому убедитесь, что среда PATH, в которую запускается mdtool, находится в настройках, чтобы включить/USR/бен.

Надеюсь, что это поможет.

Смежные вопросы