Vì không có biến tập lệnh Xcode cho "thư mục dự án hiện tại", làm thế nào bạn có thể tạo một mục menu tập lệnh để chạy Trình phân tích tĩnh Clang trên dự án hiện tại của bạn từ Xcode?Sử dụng Trình phân tích tĩnh Clang từ bên trong XCode
Trả lời
Từ menu XCode kịch bản, "Chỉnh sửa Scripts tài" nhập đoạn mã sau:
#!/bin/bash
result=$(osascript << END
tell application "Xcode"
tell active project document
set projectPath to path as string
end tell
end tell
return projectPath
END
)
cd "$result"
/Developer/clangchecker/scan-build -k -V xcodebuild -configuration Debug -sdk iphonesimulator3.0
Rõ ràng, bạn sẽ cần phải điều chỉnh đường dẫn đến cài đặt lại Clang, và điều chỉnh để các phiên bản của SDK bạn đang sử dụng.
Hãy nhớ thực hiện "Xóa tất cả" ngay lập tức trước khi sử dụng tính năng quét quét hoặc kết quả có thể chưa hoàn chỉnh.
Tôi tin rằng biến môi trường $ {PROJECT_DIR} là những gì bạn muốn cho thư mục của dự án đang chạy tập lệnh xây dựng giai đoạn.
$ {PROJECT_DIR} sẽ hoạt động trong tập lệnh pha xây dựng, có, nhưng không phải trong tập lệnh người dùng có thể được kích hoạt từ trình đơn tập lệnh. – mmc
Vâng, câu hỏi của bạn rất rõ ràng. Lấy làm tiếc. Bạn vẫn có thể tạo ra một mục tiêu kêu vang trong dự án của bạn (đây là những gì tôi thường làm). Không phải là sạch như một kịch bản menu (và bạn phải tạo ra một trong mỗi dự án, tất nhiên), nhưng nó hoạt động tốt. –
Ah ha! Tôi thậm chí không nghĩ đến việc thiết lập một mục tiêu riêng biệt. Rất nhiều cách khác nhau để tiếp cận cái này, tôi đoán vậy. – mmc
FYI, Xcode 3.2 (Chỉ có Snow Leopard tôi tin) bao gồm Trình phân tích tĩnh Clang trong tùy chọn trình đơn "Xây dựng và phân tích".
http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html
Một nhược điểm của Xcode 3.2 (ngoài nó chỉ làm việc trên Snow Leopard) là mô phỏng v2.x dường như không làm việc - trên thực tế, tôi đã nhìn thấy bài viết chỉ ra rằng v2. x xây dựng không được hỗ trợ ở tất cả.
Mỗi khi tôi chạy tập lệnh này, tôi phải khởi động lại Xcode để chạy lại. Tại sao? Có cách nào để chạy tập lệnh hai lần mà không cần khởi động lại không? Nó sẽ không cho phép tôi gọi nó nữa! –
Hmmm .... Tôi chưa bao giờ gặp vấn đề đó ... HOWEVER: Tính năng này được tích hợp vào XCode 3.2, tôi chỉ đơn giản là nâng cấp và quên hoàn toàn tập lệnh này. – mmc