2012-06-21 18 views
6

Korzystam z narzędzia wiersza poleceń xcodebuild do budowania aplikacji na iOS.Komenda xcodebuild z bezwzględną ścieżką do SDK

Po jego zastosowanie Xcode45-DP1 jest automatycznie za pomocą 6.0 SDK z nowej Xcode45-DP1 app wiązki do zastosowań budowlanych. Występują 2 problemy podczas przesyłania tej aplikacji do AppStore.

  1. Aplikacja jest teraz automatycznie budowana przy użyciu najnowszego pakietu SDK (6.0), który jest już obsługiwany, więc nie można przesłać aplikacji. ROZWIĄZANIE: skopiowane stare aktualny SDK (5.1) do Xcode45-DP.app aw wierszu poleceń podano -sdk iphoneos5.1

  2. Drugim problemem jest to, że kiedy ApplicationLoader sprawdza aplikację, jest widzi, że SDK jest używana z nieobsługiwanych wersji Xcode (45-DP1) i odrzuca wysyłanie aplikacji. ROZWIĄZANIE: Chciałbym, aby określić ścieżkę bezwzględną do SDK, jak: xcodebuild -sdk /path/to/5.1sdk...

Problemem jest to, że xcodebuild zawsze mówi, że SDK „/path/to/iPhoneOS5.1.sdk/” nie może być zlokalizowany.

Czy ktoś ma doświadczenie z używaniem bezwzględnej ścieżki do sdk i do jakiego pliku/katalogu powinien on wskazywać?

Z góry dziękuję.

+0

myślę, że trzeba użyć * prąd * wersja Xcode do przesłania aplikacji, a nie podglądu programisty. Dlaczego mimo to musisz używać podglądu programisty? – trojanfoe

+0

Czy 4.5 DP1 może być również pod NDA? Zapytaj na forach programistów Apple o tym. – petert

+0

To absolutnie prawda. Nie chcę używać wersji 4.5 DP1 do budowania aplikacji, ale gdy uruchamiam xcodebuild z linii poleceń, domyślnie go używa, więc próbowałem skopiować do niej 5.1SDK. Próbowałem także instalować stare CommandLineTools, ale to nie pomogło. –

Odpowiedz

4

Szukałem tego również przez jakiś czas i wydaje się, że nie ma bezpośredniego sposobu na uzyskanie pełnej ścieżki do określonego zestawu SDK. Jeśli jednak ustawić przełącznik -sdk i -find-library dla dowolnej biblioteki i taśmy ostatnie kilka części ścieżki off można uzyskać pełną ścieżkę sdk tak:

[ 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

Ścieżki SYS_ROOT można również uzyskać w ten sposób: "xcrun --sdk iphoneos --show-sdk-path" i "xcrun --sdk iphonesimulator --show-sdk-path". – neoneye

+1

Odpowiedź w powyższym komentarzu przez neoneye jest znacznie bardziej wydajna i niezawodna. Dzięki – michaK

Powiązane problemy