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

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

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 ответов

Решение

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

Установите флажок "Запустить", если не выбран.

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

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

В XCode перейдите в Файл> Настройки Рабочего пространства> Щелкните стрелку рядом с путем к файлу Производных данных> переместите папку "Производных данных" в корзину.

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

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

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

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

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

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

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

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

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

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

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

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

Для меня срок действия моего сертификата истек. Я создал новый сертификат.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Удаление производных данных не сработало.

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

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

  2. Новый этап копирования файлов

  3. Перетащите выбранные рамки в целевой объект

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

Кредит из-за среднего поста Кевина Ле

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

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

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

ПРОЧИТАЙТЕ ЭТО, ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ 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, я смог заархивировать без этой ошибки.

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

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

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

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

1) вариант:

2) опция: обновление модуля, очистка производных данных,

Единственное, что сработало для меня:

1) Удалите производные данные с помощью CleanMyMac: системный мусор -> мусор XCode -> производные данные XCode

Удаление полученных данных с помощью CleanMyMac

2) Тогда в Xcode: Product -> Clean

Удалите все модули и установите снова.

шаги:

  1. закомментируйте все стручки и бегите pod install
  2. раскомментируйте все капсулы и бегите pod install
Другие вопросы по тегам