2012-06-21 30 views
6

Tôi đang sử dụng công cụ dòng lệnh xcodebuild để tạo ứng dụng iOS.lệnh xcodebuild với đường dẫn tuyệt đối tới SDK

Sau khi instaling Xcode45-DP1, nó sẽ tự động sử dụng 6.0 SDK từ gói ứng dụng Xcode45-DP1 mới để xây dựng ứng dụng. Có 2 vấn đề khi gửi ứng dụng này tới AppStore.

  1. Ứng dụng giờ đây được tự động tạo bằng SDK mới nhất (6.0), đã được ghi chú nhưng không hỗ trợ ứng dụng. SOLUTION: Tôi sao chép SDK cũ hiện nay (5.1) để Xcode45-DP.app và trong dòng lệnh quy định -sdk iphoneos5.1

  2. vấn đề thứ hai là khi ApplicationLoader được xác minh ứng dụng, được thấy rằng SDK được sử dụng từ phiên bản được hỗ trợ của Xcode (45-DP1) và từ chối tải ứng dụng lên. SOLUTION: Tôi muốn để xác định đường dẫn tuyệt đối cho SDK, như: xcodebuild -sdk /path/to/5.1sdk...

Vấn đề là xcodebuild luôn nói rằng SDK "/path/to/iPhoneOS5.1.sdk/" không thể được bố trí.

Có ai có kinh nghiệm về cách sử dụng đường dẫn tuyệt đối tới sdk và tệp/thư mục nào cần trỏ đến không?

Xin cảm ơn trước.

+0

Tôi nghĩ rằng bạn sẽ cần phải sử dụng * hiện * phiên bản Xcode để gửi ứng dụng của bạn chứ không phải bản xem trước dành cho nhà phát triển. Tại sao bạn cần sử dụng bản xem trước dành cho nhà phát triển? – trojanfoe

+0

Có thể 4.5 DP1 thuộc NDA không? Hỏi trong diễn đàn nhà phát triển Apple về điều này. – petert

+0

Điều đó hoàn toàn đúng. Tôi không muốn sử dụng 4,5 DP1 để xây dựng ứng dụng, nhưng khi chạy xcodebuild từ dòng lệnh, nó sử dụng nó theo mặc định, vì vậy tôi đã thử sao chép 5.1SDK vào nó. Tôi cũng đã thử cài đặt CommandLineTools cũ nhưng nó không giúp được gì. –

Trả lời

4

Tôi cũng đã tìm kiếm điều này một thời gian và dường như không phải là cách trực tiếp để nhận đường dẫn tuyệt đối đầy đủ đến một SDK cụ thể. Tuy nhiên, nếu bạn thiết lập -sdk chuyển đổi và -find-library cho một thư viện độc đoán và dải vài phần đường cuối cùng ra bạn có thể nhận được con đường sdk đầy đủ như vậy:

[ 13:02 [email protected] ~ ]$ export SYS_ROOT=`xcodebuild -sdk iphoneos6.0 -find-library system` 
[ 13:02 [email protected] ~ ]$ echo "${SYS_ROOT/\/usr\/lib\/libsystem.dylib/}" 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk 

[ 13:02 [email protected] ~ ]$ export SYS_ROOT=`xcodebuild -sdk iphonesimulator6.0 -find-library system` 
[ 13:02 [email protected] ~ ]$ echo "${SYS_ROOT/\/usr\/lib\/libsystem.dylib/}" 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk 
+4

Đường dẫn SYS_ROOT cũng có thể được lấy theo cách này: "xcrun --sdk iphoneos --show-sdk-path" và "xcrun --sdk iphonesimulator --show-sdk-path". – neoneye

+1

Câu trả lời trong bình luận ở trên bởi neoneye là hiệu quả hơn và đáng tin cậy hơn. Cảm ơn – michaK

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