как решить проблему «Ошибка команды / bin / sh с кодом выхода 1» в iphone


93

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

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

Снимок экрана с ошибкой

Как я могу это исправить?

Ответы:


208

 Target -> Build-Phases -> примеры обновления

Установите флажок «При запуске», если он не установлен.


2
Этот флажок может находиться в разделе Фазы сборки → Объединить собственный код и изображения React.
Ришат 08

4
для меня это работает при создании / установке приложения на телефон, но не при архивировании
Adeem

Это правильный ответ, но если установить режим Generc iOS Device для получения сборки fr all ... снова получить
ошибку

@reza_khalafi убедитесь, что у вас есть чистые данные, а также удалите производные данные. затем попробуйте еще раз.
Harshad

1
@Harshad работает во время сборки, но не для архивирования
NGB

63

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


3
БОЛЬШОЕ СПАСИБО! Кстати, по крайней мере, для меня замок находится с левой стороны. Он был открыт, и его пришлось закрыть.
Eironeia

Я поделился этим решением из источника, которого, к сожалению, не помню.
Салем Бинмусаед

Я получил код выхода 134 при попытке заархивировать продукт, но я мог установить приложение на устройство, я открыл связку ключей, но не могли бы вы найти блокировку где-нибудь, мой Xcode версии 9.2, действительно нужна помощь
showmyroutes

43

У меня сработало удаление «Производных данных».

В Xcode выберите «Файл»> «Настройки рабочего пространства»> щелкните стрелку рядом с путем к файлу производных данных> переместите папку «Производные данные» в корзину.


1
Какую версию Xcode вы имеете в виду? ... У меня нет меню / окон или параметров, о которых вы говорите в Xcode 6.2
CthulhuJon

2
его в windows-> Организатор, а не проекты Windows
CthulhuJon

он работает, но мне нужно очистить проект и перезапустить Xcode
Хосни,

1
Файл-> Настройки рабочего пространства ...-> Производные данные. Щелкните стрелку в конце пути. Щелкните правой кнопкой мыши папку и переместите в корзину. IOS 10.12.6
Augustas

30

Кажется, вы запускаете сценарий оболочки и не можете найти ваш конкретный файл. Посмотрите Target -> Build-Phases -> RunScript, запускаете ли вы сценарий.

Вы можете проверить, запущен ли скрипт, в выводе сборки (на панели навигатора). Если ваш сценарий делает что-то не так, этап сборки остановится.


SKM я отредактировал свой ответ. Возможно, это Xcode, который создал этот скрипт, чтобы найти вашу статическую библиотеку. Кстати, он не компилируется, потому что не может найти файл в /Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/libSCXMLParser.a. Так что не забудьте включить его туда
мистер Бонжур,

19

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

  1. Нажмите Показать навигатор проекта в окне навигатора.
  2. Теперь выберите проект сразу под окном навигатора
  3. Выбрать цели
  4. Выберите вкладку Build Phases.
  5. Опция раскрывающегося меню " Открыть сценарий выполнения"
  6. Выберите Выполнить скрипт только при установке флажок

Снимок экрана для шагов

Теперь очистите свой проект (cmd + shift + k) и создайте свой проект.


Это должен быть принятый ответ. Для проблемы bin / sh это решение.
Яш Беди

9

Очистка папки сборки (Cmd + Shift + Alt + K) у меня сработала


3

1) Удалите папку pod и файл .xcworkspace 2) Откройте папку в терминале 3) Введите "pod install"


1

Вы добавили библиотеку .a в проект xcode? (проект -> этапы сборки -> Свяжите двоичный файл с библиотеками -> нажмите «+» -> нажмите «добавить другое» -> выберите свою библиотеку)

А может библиотека несовместима с симулятором, вы пробовали компилировать для iDevice (не симулятора)?

(Я уже борюсь со второй проблемой, у меня есть библиотека, которая работала не с симулятором, а с реальным устройством, которое он компилирует ...)



0

Я попытался перезапустить Xcode (7) и ничего ( пробовали ли вы выключить и снова включить его при разработке iOS для меня :-)). Затем я попытался перезапустить свой ящик, и это сработало.

В моем случае скрипт не работал при копировании файла из одного места в другое. Я думаю, это могло быть связано с тем, что Finder накрутил права на запись в определенные папки.


0

Для меня эта ошибка возникла из-за того, что я изменил номер версии с 1 на 1.0 и номер сборки с 6 на 1.1, когда вытащил код из дерева исходных текстов. Я просто вернул его обратно и изменил номер сборки с 6 на 7, и все заработало.


0

В моем случае было место в пути, по которому скрипт не работал. Если вы используете такие переменные, как $PROJECT_DIRили, $TARGET_BUILD_DIRто замените их "$PROJECT_DIR"или "$TARGET_BUILD_DIR"соответственно. После добавления кавычек мой скрипт успешно запустился.


0

просто поместите свой скрипт в файл и запустите этот файл с 2> / dev / null в конце командной строки!

Таким образом, если есть проблема с командой, она не остановит вашу сборку xcode

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

$mobiledevice uninstall_app com.my.app 2>/dev/null



0

Я сделал все выше и потратил час на эту проблему.

Пробовал все выше, а также перезапустил Xcode.

Наконец, перезагрузили компьютер, и все снова заработало!


1
вы ничего не добавляли к этому посту с ответом. Перезагрузка компьютера может быть комментарием, поскольку он не помогает объяснить, что случилось.
Боян Петкович

Какая-то странная проблема, удаленные производные данные и переключение / отключение новой системы сборки. Но после перезагрузки все было в порядке!
Oritm

0

Я перечислю то, что я сделал, что у меня не сработало, и, наконец, что сработало

Во-первых, принятый ответ Run script только при установке не сработал.

Удаление производных данных не помогло.

Что сработало:

  1. Я добавил новую фазу сборки в Build Phases

  2. Новая фаза копирования файлов

  3. Перетащите выбранный фреймворк в цель перетаскивания

  4. Установите "Назначение" на Frameworks

Кредит из-за средней публикации Кевина Ле


0

Для тех, кто не хочет снимать этот флажок (например, с помощью cocoapods), проблема может быть в сертификате / ключе.

Xcode (или любой другой инструмент, который вы используете, например инструмент командной строки) должен иметь возможность использовать сертификат / ключ из связки ключей. Для этого откройте Связку ключей, найдите сертификат, который вы хотите использовать (обычно в связке loginключей My Certificates), щелкните правой кнопкой мыши ключ, выберите Get Info, щелкните Access Controlвкладку и добавьте приложение в список.

Если это не помогло, попробуйте разблокировать брелок.

Другой вариант - выбрать Разрешить всем приложениям получать доступ к этому элементу вместо определенных приложений и / или переместить сертификат / ключ в Systemцепочку ключей, которая является общей для всех учетных записей пользователей на этом Mac.

Также убедитесь, что срок действия сертификата не истек.



0

В моем случае один из сценариев (связанных с SwiftGen) не работал во время компиляции.

Я исправил проблему, удалив, Podsа затем обновив их снова.

  1. Удалите проблемный модуль из Podsкаталога или используйтеpod deintegrate
  2. Установите / обновите модули с помощью pod installилиpod update

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


0

ПРОЧИТАЙТЕ ЭТО, ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ Crashlytics И ЕСТЬ ЭТА ПРОБЛЕМА ...

У меня была та же проблема, что и выше, Command /bin/sh failed with exit code 1более конкретно[31merror: Could not fetch upload-symbols settings: An unknown error occurred fetching settings.[0m

Первое решение (включение сценария запуска только при установке) позволило мне построить мою цель в симуляторе, но я не смог заархивировать свою сборку.

Я решил эту проблему с архивом, включив Crashlytics на firebase. Я до сих пор привык к Fabric, где Crashlytics включается автоматически. Как только я включил Crashlytics в консоли firebase для соответствующего GoogleService-Info.plist, я смог заархивировать без этой ошибки.


-1

Удалите все капсулы и установите снова.

Шаги:

  1. прокомментируйте все поды и запустите pod install
  2. раскомментируйте все пакеты и запустите pod install
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.