як виправити проблему "Не вдалося виконати команду / bin / sh із кодом виходу 1" у iphone


92

У своєму додатку я використовував статичну бібліотеку какао. Коли я компілюю свою бібліотеку, я отримую таку помилку:

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

 Ціль -> Фази побудови -> приклади оновлення

Поставте прапорець біля пункту Виконати, якщо не позначено.


2
Цей прапорець може бути в розділі Фази побудови → Вбудований реактивний код та зображення.
rishat

4
для мене це працює під час створення / встановлення програми на телефоні, але не під час архівування
Adeem

Ця відповідь правильна. Але коли встановлено режим Generc iOS Пристрій для отримання збірки fr all ... отримати помилку ще раз @Harshad
reza_khalafi

@reza_khalafi переконайтеся, що у вас є чіткі дані, а також видаляєте похідні дані. потім спробуйте ще раз.
Харшад,

1
@Harshad Працює під час будівництва, але не для архівування
NGB

63

У мене виникла ця проблема, тому що я відмовив у доступі до брелока, і для її вирішення вам потрібно відкрити брелок, а потім клацніть на замок у верхньому правому куті екрана, щоб заблокувати його знову, після цього ви зможете архівувати, і він буде працювати


3
ДУЖЕ ДЯКУЮ! До речі, принаймні для мене замок знаходиться в лівій частині. Він був відкритий і повинен був його закрити.
Ейронея

Я поділився цим рішенням із джерела, якого, на жаль, не пам’ятаю.
Салем Бінмус,

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

42

Видалення "Виведених даних" у мене спрацювало.

У Xcode перейдіть у меню Файл> Налаштування робочої області> Клацніть стрілку біля шляху до файлу похідних даних> перемістіть папку «Похідні дані» до кошика.


1
До якої версії Xcode ви маєте на увазі? ... У мене немає меню / вікон чи параметрів, на які ви посилаєтесь у Xcode 6.2
CthulhuJon,

2
його в windows-> Організатор, а не Windows Projects
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. Виберіть вкладку Фази побудови
  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

Я перелічу те, що зробив, але не працювало для мене, і нарешті те, що було

По-перше, прийнята відповідь запуску сценарію лише під час встановлення не спрацювала.

Видалення похідних даних не спрацювало.

Що працювало:

  1. Я додав нову фазу збірки у Фази збірки

  2. Нова фаза копіювання файлів

  3. Перетягніть вибраний фреймворк у ціль скидання

  4. Встановіть для пункту `` Пункт призначення '' рамки

Кредит за рахунок середнього посади Кевіна Ле


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.