cách khắc phục sự cố “Lệnh / bin / sh không thành công với mã thoát 1” trong iPhone


92

Tôi đã sử dụng một thư viện tĩnh ca cao trong ứng dụng của mình. Khi tôi biên dịch thư viện của mình, tôi gặp lỗi sau:

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

Ảnh chụp màn hình cho lỗi

Làm thế nào tôi có thể sửa lỗi này?

Câu trả lời:


208

 Target -> Build-Phases -> cập nhật ví dụ

Bấm vào hộp kiểm Chạy nếu không được chọn.


2
Hộp kiểm này có thể nằm trong Giai đoạn xây dựng → Gói mã React Native và hình ảnh.
rishat

4
đối với tôi đây làm việc khi xây dựng / cài đặt ứng dụng trên điện thoại nhưng không phải khi lưu trữ
Adeem

Câu trả lời này đúng. Nhưng khi đặt chế độ Thiết bị iOS Generc để nhận toàn bộ bản dựng ... lại gặp lỗi @Harshad
reza_khalafi

@reza_khalafi đảm bảo rằng bạn có dữ liệu rõ ràng cũng như xóa dữ liệu có nguồn gốc. sau đó thử lại.
Harshad

1
@Harshad Hoạt động trong khi xây dựng nhưng không phải để lưu trữ
NGB

63

Tôi gặp sự cố này vì tôi đã từ chối quyền truy cập chuỗi khóa và để giải quyết vấn đề này, bạn cần mở chuỗi khóa, Sau đó nhấp vào ổ khóa ở trên cùng bên phải của màn hình để khóa lại, sau đó bạn có thể lưu trữ và nó sẽ hoạt động


3
CẢM ƠN BẠN RẤT NHIỀU! Btw, ít nhất đối với tôi ổ khóa nằm ở phía bên trái. Nó đã mở và phải đóng nó lại.
Eironeia

Tôi đã chia sẻ giải pháp này từ một nguồn mà tôi không nhớ rất tiếc.
Salem Binmusaed

Tôi đã nhận mã exit 134 khi cố gắng để lưu trữ các sản phẩm, nhưng tôi có thể cài đặt ứng dụng vào điện thoại, tôi có mở keychain nhưng bạn có thể tìm thấy những khóa bất kỳ ở đâu, phiên bản của tôi Xcode 9.2, thực sự cần sự giúp đỡ
showmyroutes

42

Tôi đã xóa "Dữ liệu có nguồn gốc".

Trong Xcode, đi tới Tệp> Cài đặt không gian làm việc> Nhấp vào mũi tên bên cạnh đường dẫn tệp Dữ liệu gốc> chuyển thư mục "Dữ liệu gốc" vào thùng rác.


1
Có gì Xcode phiên bản bạn đang đề cập đến ... Tôi không có menu / cửa sổ hoặc tùy chọn bạn đang đề cập đến trong Xcode 6.2?
CthulhuJon

2
của nó trong Windows-> Organizer không phải là Windows dự án
CthulhuJon

nó hoạt động nhưng cần thiết để dự án sạch và khởi động lại Xcode cho tôi
Hosny

1
Tệp-> Cài đặt không gian làm việc ...-> Dữ liệu có nguồn gốc. Nhấp vào mũi tên ở cuối đường dẫn. Nhấp chuột phải vào thư mục và chuyển vào thùng rác. iOS 10.12.6
Augustas,

30

Có vẻ như bạn đang chạy một tập lệnh shell và nó không thể tìm thấy tệp cụ thể của bạn. Xem Target -> Build-Phases -> RunScriptnếu bạn đang chạy một tập lệnh.

Bạn có thể kiểm tra xem một tập lệnh có đang chạy trong đầu ra bản dựng của mình (trong bảng điều hướng) hay không. Nếu tập lệnh của bạn làm sai điều gì đó, giai đoạn xây dựng sẽ dừng lại.


SKM tôi đã chỉnh sửa câu trả lời của mình. Có thể Xcode của nó là người đã tạo tập lệnh này để tìm thư viện tĩnh của bạn. Nhân tiện nó không biên dịch vì nó không thể tìm thấy tệp tại /Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/libSCXMLParser.a. Vì vậy, hãy chắc chắn bao gồm nó ở đó
Ông Bonjour

19

Tôi đã có cùng một vấn đề đã được khắc phục. Sử dụng các bước dưới đây để giải quyết vấn đề trong Xcode 6.4.

  1. Nhấp vào Hiển thị trình điều hướng dự án trong cửa sổ Điều hướng
  2. Bây giờ Chọn dự án ngay bên dưới cửa sổ điều hướng
  3. Chọn mục tiêu
  4. Chọn tab Xây dựng giai đoạn
  5. Mở tùy chọn thả xuống Run Script
  6. Chọn Chỉ chạy tập lệnh khi cài đặt hộp kiểm

Ảnh chụp màn hình cho các bước

Bây giờ, làm sạch dự án của bạn (cmd + shift + k) và xây dựng dự án của bạn.


Đây phải là câu trả lời được chấp nhận. Đối với một bin / sh vấn đề, đây là giải pháp.
Yash Bedi

9

Làm sạch thư mục xây dựng (Cmd + Shift + Alt + K) phù hợp với tôi


3

1) Xóa thư mục pod và tệp .xcworkspace 2) Mở thư mục trong thiết bị đầu cuối 3) Nhập "pod install"


1

Bạn đã thêm thư viện .a vào xcode projet chưa? (dự án -> giai đoạn xây dựng -> Liên kết nhị phân với thư viện -> nhấp vào dấu '+' -> nhấp vào 'thêm khác' -> chọn thư viện của bạn)

Và có thể thư viện không tương thích với trình giả lập, bạn đã thử biên dịch cho iDevice (không phải giả lập)?

(Tôi đã chiến đấu với vấn đề thứ hai, tôi có một thư viện không hoạt động với trình mô phỏng nhưng với một thiết bị thực, nó biên dịch ...)


1

Đối với tôi, chứng chỉ của tôi đã hết hạn. Tôi đã tạo một chứng chỉ mới.


0

Tôi đã thử khởi động lại Xcode (7) và không có gì ( bạn đã thử tắt và bật lại phần phát triển iOS cho tôi chưa :-)). Sau đó tôi đã thử bằng cách khởi động lại hộp của mình và điều đó đã hoạt động.

Trong trường hợp của tôi, tập lệnh không thành công khi sao chép tệp từ một vị trí sang một vị trí khác. Tôi nghĩ rằng nó có thể liên quan đến việc Finder bắt vít với quyền ghi trên một số thư mục nhất định.


0

Đối với tôi, lỗi này đã xảy ra vì tôi đã thay đổi số phiên bản từ 1 thành 1.0 và số bản dựng từ 6 thành 1.1 khi tôi kéo mã từ cây nguồn. Tôi vừa thay đổi nó trở lại và thay đổi số bản dựng từ 6 thành 7 và nó hoạt động tốt.


0

Trong trường hợp của tôi, có khoảng trống trong đường dẫn làm lỗi tập lệnh. Nếu bạn đang sử dụng các biến như $PROJECT_DIRhoặc $TARGET_BUILD_DIRsau đó thay thế chúng "$PROJECT_DIR"hoặc "$TARGET_BUILD_DIR"tương ứng. Sau khi thêm dấu ngoặc kép, tập lệnh của tôi đã chạy thành công.


0

chỉ cần đặt tập lệnh của bạn vào một tệp và chạy tệp đó với 2> / dev / null ở cuối dòng lệnh!

Bằng cách này, nếu có vấn đề gì xảy ra với lệnh, nó sẽ không tạm dừng quá trình xây dựng xcode của bạn

trong trường hợp của tôi, tôi chỉ đang chạy một lệnh để gỡ cài đặt bản sao ứng dụng trước đó của tôi khỏi một chiếc iPhone được kết nối, vì vậy nó có thể gây ra lỗi nếu iPhone không ở đó. Để giải quyết nó:

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



0

Tôi đã làm tất cả ở trên và dành một giờ cho vấn đề này.

Đã thử mọi thứ ở trên cũng như khởi động lại Xcode.

Cuối cùng, khởi động lại máy tính và mọi thứ hoạt động bình thường trở lại!


1
bạn đã không thêm bất cứ điều gì vào bài đăng này với câu trả lời. Khởi động lại máy tính có thể là một nhận xét vì nó không giúp giải thích điều gì đã xảy ra.
Bojan Petkovic

Một số vấn đề kỳ lạ, dữ liệu có nguồn gốc bị xóa và hệ thống xây dựng mới đã chuyển đổi / hủy chuyển đổi. Nhưng sau khi khởi động lại, tôi vẫn ổn!
Oritm 29/07/18

0

Tôi sẽ liệt kê những điều tôi đã làm mà không hiệu quả với tôi và cuối cùng là những gì đã làm

Đầu tiên, câu trả lời được chấp nhận của Run script chỉ khi cài đặt không hoạt động.

Xóa dữ liệu có nguồn gốc không hoạt động.

Những gì đã làm việc:

  1. Tôi đã thêm một giai đoạn xây dựng mới trong Các giai đoạn xây dựng

  2. Giai đoạn sao chép tệp mới

  3. Kéo và thả khung đã chọn vào mục tiêu thả

  4. Đặt 'Đích' thành Khung

Tín dụng do bài đăng trên Medium của Kevin Le


0

Đối với những người không muốn bỏ chọn tùy chọn đó (sử dụng cocoapods chẳng hạn), vấn đề có thể là với chứng chỉ / khóa.

Xcode (hoặc bất kỳ công cụ nào bạn đang sử dụng, chẳng hạn như công cụ dòng lệnh) cần có thể sử dụng chứng chỉ / khóa từ chuỗi khóa. Để làm điều này, hãy mở Chuỗi khóa, tìm chứng chỉ mà bạn muốn sử dụng (Thường là trên loginchuỗi khóa, My Certificates), nhấp chuột phải vào khóa, chọn Get Info, nhấp vào Access Controltab và thêm ứng dụng vào danh sách.

Nếu cách này không hiệu quả, hãy thử mở khóa chuỗi khóa.

Một tùy chọn khác có thể được chọn Cho phép tất cả các ứng dụng truy cập vào mục này thay vì các ứng dụng cụ thể và / hoặc di chuyển chứng chỉ / khóa sang chuỗi Systemkhóa được chia sẻ giữa tất cả các tài khoản người dùng trên máy Mac đó.

Đồng thời kiểm tra xem chứng chỉ chưa hết hạn.


0

1) tùy chọn: Vui lòng kiểm tra chỉ chạy tập lệnh khi cài đặt ...... câu trả lời của câu hỏi này là đúng

2) tùy chọn: cập nhật nhóm, dữ liệu dẫn xuất sạch,


0

Trong trường hợp của tôi, một trong các tập lệnh (liên quan đến SwiftGen) đã bị lỗi trong quá trình biên dịch.

Tôi đã khắc phục sự cố bằng cách xóa Podsvà sau đó cập nhật lại chúng.

  1. Xóa nhóm có vấn đề trong Podsthư mục hoặc sử dụngpod deintegrate
  2. Cài đặt / Cập nhật các nhóm bằng cách sử dụng pod installhoặcpod update

PS Có thể sự phụ thuộc của bạn là Toàn cầu và không thuộc nhóm. Trong trường hợp đó, bạn cũng có thể thử cài đặt lại phần phụ thuộc đó.


0

ĐỌC ĐIỀU NÀY NẾU BẠN DÙNG Crashlytics VÀ CÓ VẤN ĐỀ NÀY ...

Tôi đang gặp vấn đề tương tự như trên, Command /bin/sh failed with exit code 1cụ thể hơn[31merror: Could not fetch upload-symbols settings: An unknown error occurred fetching settings.[0m

Giải pháp đầu tiên (chỉ bật tập lệnh chạy khi cài đặt) cho phép tôi tạo mục tiêu của mình trong trình mô phỏng, nhưng tôi không thể lưu trữ bản dựng của mình.

Tôi đã giải quyết vấn đề Lưu trữ này bằng cách bật Crashlytics trên firebase. Tôi vẫn quen dùng Fabric trong đó Crashlytics được bật tự động. Sau khi bật Crashlytics trong bảng điều khiển firebase cho GoogleService-Info.plist tương ứng, tôi đã có thể Lưu trữ mà không gặp lỗi này.


-1

Gỡ bỏ tất cả các nhóm và cài đặt lại.

Các bước:

  1. bình luận tất cả các nhóm và chạy pod install
  2. bỏ ghi chú tất cả các nhóm và chạy pod install
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.