2013-07-04 42 views
11

Câu hỏi đơn giản - nếu tôi có tệp .framework, có lệnh/công cụ có thể được sử dụng để xác định SDK và Phiên bản triển khai được sử dụng để tạo khung không?Xác định phiên bản OS X SDK và triển khai Target từ Framework

Tương tự, điều này có thể được thực hiện trên tệp nhị phân ứng dụng được lưu trữ bên trong tệp .app không? Tôi đang tìm cách tự động hóa một tập lệnh sẽ tìm kiếm danh sách các ứng dụng/khung công tác đã được tạo trước đó mà không cần có các tệp .xcodeproj gốc và xác định các phiên bản hệ điều hành được hỗ trợ cao/thấp của chúng.

Trả lời

17

Để tìm hiểu về SDK và mục tiêu triển khai của một số nhị phân, bạn nên khám phá lệnh tải LC_VERSION_MIN_MACOSX. Sử dụng otool -l <some_binary> để xem lệnh tải.
Ví dụ:

$otool -l my_binary 
... 
Load command 9 
     cmd LC_VERSION_MIN_MACOSX 
    cmdsize 16 
    version 10.7 
     sdk 10.8 
... 

$otool -l /System/Library/Frameworks/CoreWLAN.framework/CoreWLAN 
... 
Load command 8 
     cmd LC_VERSION_MIN_MACOSX 
    cmdsize 16 
    version 10.8 
     sdk 10.8 
... 

Ví dụ với đường ống để grep:

otool -l my_binary | grep -A 3 LC_VERSION_MIN_MACOSX 
+0

* Perfect * Tôi đã chơi xung quanh với 'otool', nhưng những lá cờ đã dauntingly rất nhiều.. Khung của tôi thực sự được xây dựng với cả 'phiên bản' và' sdk' được đặt thành 10.8, và bây giờ tôi có thể xác nhận rằng việc thay đổi (Compiler Default) thành 10.7 tạo ra một bản sao tốt hơn. –

+0

Mọi mẹo về cách thực hiện tương tự cho iOS? Đã cố gắng xác định mục tiêu triển khai của các khung công tác Facebook và Crashlytics hiện tại được sử dụng trong một dự án, nhưng lệnh này không hiển thị bất cứ thứ gì giống như một phiên bản tối thiểu. – Clafou

+0

@Clafou xin lỗi, không thể giúp bạn trong số đó – cody

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