2012-06-21 2 views
6

Я использую xcodebuild инструмент командной строки для создания приложения для iOS.команда xcodebuild с абсолютным путем к SDK

После установки Xcode45-DP1 он автоматически использует 6.0 SDK из нового пакета приложений Xcode45-DP1 для создания приложений. При отправке этого приложения в AppStore возникает 2 проблемы.

  1. Приложение теперь автоматически построено с использованием новейшего SDK (6.0), которое все еще поддерживается, поэтому приложение не может быть отправлено. РЕШЕНИЕ: Я скопировал старый текущий SDK (5.1) Xcode45-DP.app и в командной строке указано -sdk iphoneos5.1

  2. Вторая проблема заключается в том, что когда ApplicationLoader проверяет приложение, это видит, что SDK используется от неподдерживаемой версии Xcode (45-DP1) и отклоняет загрузку приложения. РЕШЕНИЕ: Я хотел бы указать абсолютный путь к SDK, как: xcodebuild -sdk /path/to/5.1sdk...

Проблема заключается в том, что xcodebuild всегда говорит, что SDK «/path/to/iPhoneOS5.1.sdk/» не могут быть расположены.

Есть ли у кого-нибудь опыт использования абсолютного пути к sdk и в каком файле/каталоге он должен указывать?

Заранее благодарен.

+0

Я думаю, вам нужно использовать * ток * версию Xcode для отправки вашего приложения, а не предварительного просмотра разработчиком. Почему в любом случае вам нужно использовать предварительный просмотр разработчика? – trojanfoe

+0

Может ли 4.5 DP1 быть под NDA тоже? Спросите на форумах разработчиков Apple об этом. – petert

+0

Это абсолютно верно. Я не хочу использовать 4.5 DP1 для сборки приложения, но при запуске xcodebuild из командной строки он использует его по умолчанию, поэтому я попытался скопировать 5.1SDK в него. Я также попытался установить старый CommandLineTools, но это не помогло. –

ответ

4

Я искал это некоторое время, и, похоже, нет прямого способа получить полный абсолютный путь к определенному SDK. Тем не менее, если вы установите переключатель -sdk и -find-library для произвольной библиотеки и полосы последние несколько частей пути от вы можете получить полный путь SDk так:

[ 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

Пути SYS_ROOT также могут быть получены следующим образом: «xcrun --sdk iphoneos --show-sdk-path» и «xcrun --sdk iphonesimulator --show-sdk-path». – neoneye

+1

Ответ в комментарии выше на neoneye намного эффективнее и надежнее. благодаря – michaK

Смежные вопросы