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ả.
- 1. Máy phân tích tĩnh Xcode và copyWithZone
- 2. Cảnh báo phân tích tĩnh Xcode Clang này có thể bị chặn như thế nào?
- 3. bắt đầu Clang phân tích tĩnh với xcodebuild
- 4. XCode: Máy phân tích tĩnh không hoạt động nếu C/C++ - Mã được sử dụng trong dự án
- 5. xây dựng một trình phân tích cú pháp với clang
- 6. Xây dựng Mã iPhone bằng cách sử dụng xcodebuild và chạy Máy phân tích tĩnh LLVM/Clang
- 7. Xcode 3.2.1 GCC Clang và LLVM sáng tỏ
- 8. Làm cách nào để chạy GCC/Clang để phân tích tĩnh? (chỉ cảnh báo)
- 9. Làm cách nào để phân tích cú pháp macro trong mã C++, sử dụng CLANG làm trình phân tích cú pháp và Python làm ngôn ngữ kịch bản?
- 10. Sử dụng ANTLR để phân tích tĩnh tệp nguồn Java
- 11. Ví dụ mã để kích hoạt phân tích tĩnh của Clang
- 12. Phân tích mã Java tĩnh
- 13. Sử dụng các ô tĩnh trong bảng phân cảnh UIView với Xcode 4.2
- 14. Phân tích mã tĩnh bằng Python?
- 15. Chọn công cụ phân tích mã tĩnh
- 16. Sử dụng trình phân tích cú pháp CDT của Eclipse bên ngoài CDT
- 17. CMake thêm mục tiêu để gọi máy phân tích clang
- 18. llvm-clang: trình phân tích cú pháp gia tăng hoặc trực tuyến?
- 19. cụm từ thông dụng cho trình phân tích url
- 20. Máy phân tích mã tĩnh cho C
- 21. Làm thế nào để phân tích tĩnh C++ và mã Objective-C++?
- 22. Làm cách nào để mở rộng Clang bằng trình phân tích cú pháp bổ sung?
- 23. Ví dụ phân tích HTML libxml2 đơn giản, sử dụng Objective-c, Xcode và HTMLparser.h
- 24. Cách sử dụng phân tích google từ tệp ngọc bích
- 25. Sử dụng trình phân tích nhật ký để phân tích nhiều nhật ký trong các thư mục khác nhau
- 26. Sử dụng dlsym trên nhị phân tĩnh
- 27. Cách phân tích đối tượng lồng nhau/mảng bằng cách sử dụng trình phân tích cú pháp jsoncpp trong C++?
- 28. Cách tạo thư viện tĩnh từ dự án Xcode?
- 29. Sử dụng OptionParser ruby của phân tích tiểu lệnh
- 30. Sử dụng thư viện tĩnh và các sản phẩm bó từ Xcode 4 tiểu dự án
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