Ошибка сборки iphone, которая заставляет меня хотеть купить пистолет для ногтей
Я просто пытаюсь создать простое обновление (которое я сделал ранее) для приложения iphone, но теперь по какой-то причине я получаю эту ошибку. Может ли кто-нибудь сказать мне, что это значит?
Command/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copyplist failed with exit code 127
sh: plutil: command not found
Вот результаты сборки:
CopyPNGFile /Users/me/path/build/Dist-iphoneos/MyApp.app/img_000.png images/img_000.png
cd /Users/me/
setenv COPY_COMMAND /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/"
"/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS Build System Support.xcplugin/Contents/Resources/copypng" -compress "" /Users/path/images/img_000.png /Users/me/path/build/Dist-iphoneos/MyApp.app/img_000.png
sh: dirname: command not found
CopyPlistFile /Users/me/path/build/Dist-iphoneos/MyApp.app/Entitlements.plist Entitlements.plist
cd /Users/me/
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/"
/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copyplist --convert binary1 Entitlements.plist --outdir /Users/me/path/build/Dist-iphoneos/MyApp.app
sh: plutil: command not found
Ответы
Ответ 1
По какой-то причине ваша переменная PATH прикручивается. Вы хотите посмотреть, как именно это произошло. Это ваше (разделенное двоеточием для акцента):
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
:/Developer/usr/bin
:/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/"
Вот как выглядит работающий PATH:
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
:/Developer/usr/bin
:/usr/bin
:/bin
:/usr/sbin
:/sbin"
(разделение строк - это разъяснение того, как переменные PATH разделяют пути)
Обратите внимание, что у меня есть /usr/bin:/bin:/usr/sbin:/sbin и твой нет? Это проблема прямо там. Оболочка script обнаруживает только исполняемые файлы по своему пути, а файлы находятся в /usr/bin/, но не находит их.
Для обсуждения SO на Xcode PATH, см., например, где $PATH установлен в xcode?
Ответ 2
Возможно ли, что переменная среды пути не установлена каким-то образом?
У вас есть:
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/" /Developer/Library/Xcode/Plug -ins/CoreBuildTasks.xcplugin/Contents/Resources/copyplist --convert binary1 Entitlements.plist --outdir/Users/me/path/build/Dist-iphoneos/MyApp.app
Пока я показываю:
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/opt/local/bin:/usr/local/bin:/bin:/sbin:/usr/бен:/USR/SBIN" builtin-infoPlistUtility test34-Info.plist -genpkginfo/Users/gnd/Desktop/test34/build/Debug-iphonesimulator/test34.app/PkgInfo -expandbuildsettings -format binary -platform iphonesimulator -o/Пользователи/gnd/Desktop/test34/build/Debug-iphonesimulator/test34.app/Info.plist
Я не вижу /usr/bin в вашем пути.
(в терминале:
echo ${PATH}
хотя большинство приложений OS X GUI получают свой путь от ~/.MacOSX/environment.plist, но не на 100% уверены в Xcode.
Дополнительная информация:
на странице "man bash":
Когда bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с опцией -login, она сначала считывает и выполняет команды из файла /etc/profile, если этот файл существует. После прочтения этого файла он ищет ~/.bash_profile, ~/.bash_login и ~/.profile в этом порядке и читает и выполняет команды из первого, который существует и доступен для чтения.
Итак, если у вас есть это .bash_login, но .bash_profile существует, ваше изменение не будет видно.
Также обратите внимание на комментарий к альтернативному файлу определения PATH приложений GUI приложений выше.
Вам может потребоваться выйти из системы, а затем вернуться, чтобы получить изменение "взять".
Ответ 3
У меня была такая же проблема... проблема в том, что плутил не находится ни в одном из каталогов в PATH.
Мое решение состояло в том, чтобы сделать копию из /usr/bin в/user/local/bin, которая находится в PATH.
Не знаю, проблема в Xcode, OS X или Apple.
Ответ 4
plutil
обычно находится в /usr/bin
. Убедитесь в этом. Если это не так, возможно, вы установили свои инструменты для разработчиков, не сняв флажок (или сняв флажок) с инструментами "Системные инструменты", который помещает базовые средства программирования для Mac OS X в/usr.
Ответ 5
Попробовал переустановить SDK?
Ответ 6
Я рассмотрел предоставленные ответы, и никто из них не работал у меня. Проблема продолжалась.
Я внимательно посмотрел на ошибку в xcode и заметил, что он искал изображение в неправильном месте. В моем случае я скопировал и переименовал каталог, содержащий мой проект. Ни одна из ссылок на мои изображения не была обновлена.
Я исправил свою проблему, щелкнув файл проекта в Finder правой кнопкой мыши и нажав Показать содержимое пакета. Затем я открыл *.pbxproj в xcode. Я нашел и заменил файл, чтобы заменить имя старой папки на новую папку.
После закрытия и открытия xcode это решило мою проблему.
Я надеюсь, что это поможет другим...
Ответ 7
эта ошибка также покажет, удалили ли вы файл через finder (а не в xcode), затем попробуйте архивировать. Поэтому убедитесь, что ни один из ваших файлов не указан красным цветом, и если они удаляют его из вашего проекта.
Ответ 8
Я видел эту ошибку раньше. Проблема заключается в поврежденном файле .png. Ошибка довольно обманчива. Попробуйте удалить затронутый .png и заменить его обратно в проекте из резервной или чистой версии этого файла. Это должно устранить ошибки сборки.