2011-09-09 28 views
9

Tôi đang sử dụng xcodebuild bên trong tập lệnh bash trên máy chủ tích hợp liên tục.Làm thế nào để có được giá trị trả lại của xcodebuild?

Tôi muốn biết khi nào một bản dựng không thành công trong tập lệnh, vì vậy tôi có thể thoát sớm từ nó và đánh dấu việc xây dựng là không thành công.

xcodebuild hiển thị thông báo BUILD FAILED cho bảng điều khiển, nhưng tôi không thành công khi nhận được giá trị trả lại.

Tôi làm cách nào để đạt được điều này?

Cảm ơn trước

Trả lời

7

Tôi đã giải quyết được sự cố của mình bằng lệnh này: xcodebuild -... || thoát 1

+0

Đây là câu trả lời rõ ràng nhất. thnx Mike;) – MQoder

8

Bạn có thể sử dụng "$?" biến để lấy mã trả về của lệnh trước đó.

xcodebuild -... 
if [[$? == 0]]; then 
    echo "Success" 
else 
    echo "Failed" 
fi 
11

xcodebuild luôn trả về 0, bất kể kết quả thử nghiệm thực tế. Bạn nên kiểm tra xem ** BUILD FAILED ** hoặc ** BUILD SUCCEEDED ** trong đầu ra để biết liệu các thử nghiệm có vượt qua hay không.

+1

Làm cách nào để chúng tôi có thể kiểm tra những trạng thái đó? Chúng không giống như mã thoát AFAIK – erenkabakci

4

Xcodebuild có thể trả lại bất kỳ mã lỗi nào được liệt kê here và không bị giới hạn ở EX_OK (hoặc int 0).

Tuy nhiên, tôi đã học được từ giải pháp do Dmitry cung cấp và sửa đổi như sau. Nó làm việc cho tôi và tôi hy vọng nó có thể hữu ích.

xcodebuild -project ...... 
    if test $? -eq 0 
    then 
     echo "Success" 
    else 
     echo "Failed" 
    fi 
2

Có thể không phải vì xcodebuild không trả lại khác 0 khi xây dựng không thành công. Tập lệnh shell của bạn tiếp tục chạy bất kể dòng trả về có thể là kết quả của việc bạn không chạy tập lệnh bằng tùy chọn "-e".

Thử đặt #!/Bin/bash -e trước tệp tập lệnh.

-1

Cho dù sản phẩm được biên dịch (.a hoặc tệp .ipa) tồn tại

Các vấn đề liên quan