ошибка сборки 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
12
задан sol 11 June 2010 в 03:59
поделиться

5 ответов

plutil обычно находится в /usr/bin. Убедитесь, что он там есть. Если это не так, возможно, вы установили инструменты разработчика без снятия (или со снятием) флажка Системные инструменты, который помещает базовые инструменты программиста Mac OS X в /usr.

0
ответ дан 2 December 2019 в 23:42
поделиться

Пробовали переустановить SDK?

0
ответ дан 2 December 2019 в 23:42
поделиться

Ваша переменная 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 а у вас нет? Вот и проблема. Сценарий оболочки находит только исполняемые файлы на своем пути, и пока файлы находятся в / usr / bin /, он их не находит.

Для обсуждения SO в Xcode PATH см., Например, где $ PATH установлен в xcode?

2
ответ дан 2 December 2019 в 23:42
поделиться

Возможно ли, что ваша переменная окружения path как-то не установлена?

У вас:

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/bin:/usr/sbin" builtin-infoPlistUtility test34-Info.plist -genpkginfo /Users/gnd/Desktop/test34/build/Debug-iphonesimulator/test34.app/PkgInfo -expandbuildsettings -format binary -platform iphonesimulator -o /Users/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 apps выше.

Возможно, вам придется выйти из системы, а затем снова войти, чтобы изменение "принялось".

1
ответ дан 2 December 2019 в 23:42
поделиться

У меня была такая же проблема .... проблема в том, что plutil нет ни в одном из каталогов в PATH.

Мое решение состояло в том, чтобы сделать копию из / usr / bin в / user / local / bin, который находится в ПУТИ.

Не знаю, в Xcode, OS X или Apple - проблема.

1
ответ дан 2 December 2019 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: