Làm cách nào tôi có thể giới hạn giai đoạn xây dựng của Run Run Script trong cấu hình phát hành của mình?


138

Tôi có một tập lệnh shell mà tôi muốn chạy vào cuối giai đoạn xây dựng mục tiêu của mình. Tuy nhiên, tôi muốn tập lệnh này chỉ chạy khi tôi xây dựng với cấu hình phát hành . Điều này có thể giải quyết như thế nào? Cảm ơn!

Câu trả lời:


295
if [ "${CONFIGURATION}" = "Release" ]; then
  echo Do something really release-like
fi

Kịch bản sẽ chạy ở cuối mọi cấu hình, nhưng nó sẽ không làm gì trong trường hợp này trừ khi cấu hình là Phát hành (giả sử mọi thứ nó được chứa trong khối kiểm tra).


1
Tôi chỉ phát hiện ra nó không hoạt động với tên cấu hình nhiều từ. Nó hoạt động với "Phát hành" nhưng không hoạt động với "Beta nội bộ".
Hedin

4
@Hedin - đó chỉ là bash; nếu bạn có biến nhiều từ, bạn cần bao quanh biến trong dấu ngoặc kép. Vì vậy, $ {CONFIGURATION} trở thành "$ {CONFIGURATION}". Tôi sẽ cập nhật câu trả lời để bao gồm điều đó.
Jason Coco

15
Tôi có các cấu hình 'Gỡ lỗi', 'Phát hành' (cho dụng cụ), 'Ad Hoc' và 'App Store' (với ký mã khác nhau), vì vậy tôi đã thay đổi nó cho if [ "${CONFIGURATION}" != "Debug" ]; then....
Nicolas Miari

1
Đối với điều kiện if tôi muốn sử dụng #define TRUE / FALSE được lưu trữ trong tệp .pch .. làm thế nào tôi có thể tham chiếu nó trong mã tập lệnh?
newton_guima

2
Điều tương tự có thể được thực hiện với cờ tiền xử lý?
Justin Vallely

15

Cách dễ nhất để làm điều này là kiểm tra hộp kiểm "Chỉ chạy tập lệnh khi cài đặt".



4
"Cài đặt gỡ lỗi trên thiết bị thực (xây dựng và chạy từ Xcode) không được tính là" cài đặt ". Tập lệnh chạy chỉ chạy khi lưu trữ (được thử nghiệm với Xcode 9)." stackoverflow.com/questions/5913199/ từ
dark lovfelt

2
Nó sẽ không hoạt động nếu bạn muốn xây dựng ứng dụng của mình trong Releasecấu hình mà không lưu trữ nó. Câu hỏi rõ ràng về Releasecấu hình.
Legonaftik
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.