2013-08-07 49 views
5

Tôi hiện đang sử dụng xcodebuild để tự động thử nghiệm cho iOS.Truyền cờ trình biên dịch qua xcodebuild

Hiện tại, tôi bị kẹt khi cố chuyển cờ trình biên dịch qua Xcode trực tiếp tới trình biên dịch. Những lá cờ này là: -fprofile-arcs -ftest-coverage.

Tôi không có quyền tự do sửa đổi xcodeproj, đó là lý do tại sao tôi muốn tiêm các cờ này thông qua lệnh xcodebuild.

Nó sẽ là một cái gì đó như:

xcodebuild -project path/to/my.xcodeproj -scheme MyApp -fprofile-arcs -ftest-coverage 

Có phải đó là khả thi? Làm sao?

+1

Hãy thử đặt chúng bằng lập luận OTHER_CFLAGS – borrrden

+0

Đối số OTHER_CFLAGS đã được sử dụng trong các thiết lập xcodeproj buồn bã :(Nhưng tôi có một giải pháp :) Xem bên dưới. – aspyct

Trả lời

5

Dường như hầu hết các cờ trình biên dịch có thể được biểu diễn dưới dạng hằng số, và chúng có thể được chuyển đến trình biên dịch thông qua xcodebuild dễ dàng.

Để tải xuống, chỉ cần chọn tùy chọn trong chế độ xem cài đặt bản dựng xcode và nhấn lệnh C (bản sao). Trong trường hợp của tôi, họ là GCC_GENERATE_TEST_COVERAGE_FILESGCC_INSTRUMENT_PROGRAM_FLOW_ARCS.

lệnh của tôi khoảng trông như thế này:

xcodebuild GCC_GENERATE_TEST_COVERAGE_FILES=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES ... 
+2

Hãy coi chừng, câu trả lời này có thể dẫn đến sự nhầm lẫn. Bạn không thực sự đi qua cờ trình biên dịch ở đây, chỉ ghi đè giá trị của một số cờ môi trường Xcode, mà lần lượt đặt cờ trình biên dịch tương ứng. Nếu bạn muốn thiết lập một số cờ trình biên dịch tùy chỉnh thay thế thì bạn cần phải ghi đè lên hàm OTHER_CFLAGS env var. –

2

Vâng, tất cả các thiết lập thực sự biên dịch sôi xuống chuỗi cặp khóa-giá trị. Tôi trả lời một câu hỏi rất giống nhau về việc thiết macro Preprocessor từ dòng lệnh đó là cũng giống như áp dụng đối với các thiết lập mà bạn muốn thiết lập:

Setting a #define from the command line in xcode 4.6

Tôi cũng muốn gọi sự chú ý đến việc sử dụng $ { kế thừa} - bằng cách sử dụng các giá trị này cho phép bạn sử dụng các giá trị được chỉ định của dự án Xcode VÀ gắn thêm giá trị của riêng bạn. Tài liệu cho mỗi người trong số các thiết lập xây dựng bao gồm cả những người mà bạn đặt qua copy-paste có thể được tìm thấy ở đây:

http://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

Vui mừng bạn đã có thể có được nó để làm việc - bây giờ bạn thực sự có thể làm cho xcodebuild làm nhiều hơn cho bạn mà không yêu cầu thay đổi dự án Xcode đích!

+0

Thú vị, cảm ơn thông tin bổ sung :) – aspyct

2

Để đặt cờ trình biên dịch với xcodebuild, bạn cần đặt chúng trong tùy chọn OTHERCFLAGS.

Ví dụ:

xcodebuild -project path/to/my.xcodeproj -scheme MyApp \ 
    OTHERCFLAGS="-fprofile-arcs -ftest-coverage"