как исправить проблему "команда / bin / sh не удалось с кодом выхода 1" в iphone
я использовал статическую библиотеку cocoa в своем приложении. При компиляции моей библиотеки я получил следующее сообщение об ошибке:
Shell Script invocation error:can't open input file:
/Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-
bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/
libSCXMLParser.a (No such file or directory)
Command /bin/sh failed with exit code 1
Как я могу это исправить?
18 ответов:
У меня была эта проблема, потому что я отказал в доступе к связке ключей, и для ее решения вам нужно открыть связку ключей, Затем нажмите на замок в правом верхнем углу экрана, чтобы заблокировать его снова, после этого вы можете архивировать и он будет работать
удаление "производных данных" сработало для меня.
в Xcode перейдите в меню Файл > Параметры рабочей области > щелкните стрелку рядом с путем к файлу производных данных > переместите папку "производные данные"в корзину.
Кажется, вы запускаете скрипт и он не может найти определенный файл. Посмотри на
Target -> Build-Phases -> RunScript
Если вы запускаете скрипт.вы можете проверить, работает ли скрипт в выводе сборки (на панели навигатора). Если ваш скрипт делает что-то неправильно, фаза сборки остановится.
У меня была такая же проблема, исправлена. Используйте следующие шаги для решения проблемы в Xcode 6.4.
- нажать на кнопку показать навигатор проекта на окне "навигатор"
- теперь выберите проект сразу под окном навигатора
- выберите цели
- выберите Собрать Фаз tab
- открыть Выполнить Скрипт выпадающее параметр
- выберите выполнить скрипт только при установке флажок
теперь очистите свой проект (cmd + shift+k) и построить свой проект.
вы добавили .библиотека для проекта xcode ? (проект -> собрать фаз -> ссылка бинарные с библиотеками -> нажмите на кнопку '+' -> нажмите 'Добавить' -> выберите библиотеку)
а может библиотека не совместима с симулятором, вы пробовали компилировать для iDevice (не симулятор) ?
(Я уже боролся со второй проблемой, у меня есть библиотека, которая не работала с симулятором, но с реальным устройством, которое он компилирует...)
Я сделал все выше, и потратил час на этот вопрос.
попробовал все выше, а также перезапустил Xcode.
наконец, перезагрузите компьютер и все снова работает нормально!
Я попытался перезапустить Xcode (7) и ничего (вы пробовали выключить и снова разработки iOS для меня :-)). Затем я попытался перезапустить свою коробку, и это сработало.
в моем случае скрипт не работал при копировании файла из одного места в другое. Я думаю, что это могло быть связано с тем, что Finder завинчивает права на запись в определенные папки.
для меня эта ошибка произошла, потому что я изменил номер версии с 1 на 1.0 и номер сборки с 6 на 1.1, когда я вытащил код из исходного дерева. Я просто изменил его обратно и изменил номер сборки с 6 на 7, и он работал нормально.
в моем случае в пути было место, которое не соответствовало сценарию.Если вы используете переменные типа
$PROJECT_DIR
или$TARGET_BUILD_DIR
затем заменить их"$PROJECT_DIR"
или"$TARGET_BUILD_DIR"
соответственно.После добавления кавычек мой скрипт успешно запустился.
просто поместите свой скрипт в файл и запустите этот файл с 2>/dev / null В конце командной строки!
таким образом, если есть проблема с командой, она не остановит вашу сборку xcode
в моем случае я запускал только команду для удаления моей предыдущей копии приложения с подключенного iphone, поэтому он может дать ошибку, если iphone там нет. Чтобы решить ее:
$
mobiledevice uninstall_app com.my.app 2>/dev/null
единственное, что сработало для меня:
1) Удалите производные данные с помощью CleanMyMac: System Junk - > Xcode Junk - > Xcode Derived Data
удаление производных данных с помощью CleanMyMac
2) затем в Xcode: Product - > Clean
Я перечислю вещи, которые я сделал это не работает для меня и наконец зачем
во-первых, принятый ответ запуска скрипта только при установке не работал.
удаление производных данных не работает.
Что получилось:
Я добавил новую фазу сборки в фазах сборки
Новая Фаза Копирования Файлов
перетащите выбранный фреймворк в отбрасывания
установите "назначение" в рамки
кредит средний пост Кевина Ле
для тех, кто не хочет снимать этот флажок (например, с помощью cocoapods), проблема может быть с сертификатом/ключом.
Xcode (или любой другой инструмент, который вы используете, например инструмент командной строки) должен иметь возможность использовать сертификат/ключ из Связки ключей. Для этого откройте связку ключей, найдите сертификат, который вы хотите использовать (обычно на
login
брелокMy Certificates
), щелкните правой кнопкой мыши на ключ, выберитеGet Info
, нажмите кнопкуAccess Control
вкладка и добавить приложение к список.если это не работает, попробуйте разблокировать брелок.
другой вариант можно выбрать разрешить всем приложениям доступ к этому пункту вместо конкретных приложений и/или переместить сертификат / ключ в
System
брелок, который разделяется между всеми учетными записями пользователей на этом Mac.также проверьте, что срок действия сертификата не истек.