Zainstaluj Xcode 3.2.3 w / iPhone SDK 4, Uzyskaj "brak podstawowego SDK", nie widzisz innych SDK

Stworzyłem tę wiki społeczności, aby powiązać ze sobą wiele inne Q / A widziałem tutaj NA SO. Jeśli tu jesteś, prawdopodobnie zainstalowano finalną wersję Xcode 3.2.3 z iPhone SDK 4 (Pobierz link , reg reqd), a następnie napotkał jeden lub oba z tych problemów:

  • W Twoim wcześniej działającym projekcie Xcode iPhone, masz gdzieś "brakuje podstawowego SDK". Coś takiego:

    Ruh-roh!

  • W pokrewnym, ale bardziej obserwacja ogólna, brak wcześniej dostępnych opcji SDK urządzenia lub symulatora (np. 3.0, 3.1, 3.1.3, ...) jest dostępny tam, gdzie je widziałeś.

Author: Clay Bridges, 2010-07-01

4 answers

Przegląd

Zamierzam wyjaśnić, dlaczego tak się dzieje, a następnie jak naprawić konkretny problem "brak podstawowego SDK". Możesz przejść do dołu tylko dla poprawki, choć polecam przeczytać to wszystko. Polecam również znakomitą pracę Johna muchowa w tej kwestii.

Jeśli jesteś szczególnie zainteresowany aktualizacją Xcode 3.2.4, która ma silnie powiązany problem, możesz przekazać TUTAJ .

Jeden SDK do rządzenia nimi wszystkimi

Oto deal: 4.0 jest teraz jedyną wersją SDK dopuszczoną do przesyłania nowe lub zaktualizowane aplikacje tylko dla iPhone ' a. To jest bezpośrednio z Apple iOS 4 Lista kontrolna gotowości (reg reqd):

Wszystkie nowe aplikacje i aktualizacje istniejących aplikacji muszą być zbudowany z iPhone SDK 4. Uwaga: App Store nie będzie dłuższe aplikacje obsługujące iOS 2.x.

Przypuszczalnie -- zgaduję tutaj -- tylko iPad i aplikacje uniwersalne powinien używać SDK 3.2. to jest dlaczego wersje 4.0 i 3.2 są jedynymi możliwościami dla zestawów SDK.

Dlatego też twój projekt jest teraz zepsuty, ponieważ SDK, do którego został wcześniej zmapowany, jest przestarzały , gones-ville.

(ale) 3 jest liczbą magiczną

Spokojnie. Nadal możesz kierować Urządzenia z systemem iPhone OS 3.0 (ale nie niżej). SDK, którego używasz do kompilacji nie ogranicza -- downward -- what iOS version możesz programować lub wspierać. Po załataniu rzeczy w projekcie itp. (por. następny sekcja) możesz ustawić "cel wdrożenia iPhone OS" na niższą wersję iOS. Aby uzyskać szybki strzał, Jak to zrobić, por. Krok 7 w następnej sekcji.

Zauważ, że wkraczasz teraz w trudny teren. Twój zwykły kompilator Xcode 3.2.3 nie będzie już wymuszał Twojej zgodności z wywołaniami tylko 3.0, ani nie ma dla nich symulatora. A jeśli chcesz obsługiwać funkcje 4.0, musisz wykonać kod warunkowy, aby zapobiec awariom na urządzeniach 3.0. Zabawa.

Możesz jeszcze pobrać (od Apple!)i zainstalować poprzednią wersję Xcode lub SDK (por. tutaj ). Tak, można zainstalować wiele wersji Xcode, w różnych katalogach, tzn. umieścić tylko jedną wersję w / Developer. Możesz użyć starego Xcode, aby sprawdzić zgodność aplikacji vs. a 3.X SDK, przenosząc ciężką pracę na wymyślny kompilator i symulator. Nie można już jednak przesyłać produktów z poprzednich zestawów SDK do sklepu app store.

FWIW, planuję zrobić tylko ten czek przed wysyłką.

Co condition my condition is in

Matt Gallagher ma post Cocoa with Love w wersji conditional code zatytułowany "Tips & Tricks for conditional ios3, ios3. 2 and iOS4 code" . Jeśli planujesz warunkowe korzystanie z funkcji 4.0, jest to silna rekomendacja, aby to sprawdzić.

Naprawianie "brak podstawowego SDK"

  1. załaduj swój projekt
  2. Z menu wybierz projekt > Edytuj ustawienia projektu...
  3. w sekcji Architektura > podstawowe SDK wybierz jeden z dostępne urządzenie opcje: iPhone 3.2 lub iPhone 4.0. Jeśli jesteś tylko iPhone, 4.0 jest droga do zrobienia.
  4. Zamknij okno.
  5. Z menu wybierz projekt > Edytuj aktywny cel "YourTarget"
  6. w sekcji Architektura > podstawowe SDK wybierz jedno z dostępnych urządzeń lub opcje symulatora: iPhone 3.2 lub iPhone 4.0.
  7. jeśli chcesz kierować poprzednie wersje iOS, to w tym samym okno, w obszarze wdrażanie > cel wdrożenia iPhone OS, wybierz najniższa wersja you chcę wspierać. Zauważ, że wsparcie dla 2.wersje x przez app store jest przestarzały. Zobacz cytat" Lista kontrolna gotowości " powyżej.

Podstawowa lokalizacja SDK dla Xcode 4 i nowszych

Wykonaj powyższe kroki, ale w Kroku # 2 kliknij następujące:

  • Wybierz Nawigator projektu za pomocą ikony folderu po lewej stronie paska bocznego nawigatora
  • Wybierz projekt, który będzie na górze tego widoku.
  • konfiguracja projektu pojawi się w głównym panel edytora; wybierz "Build Settings" na górze i poniżej będzie sekcja "Architektura".

      Project navigator           Ustawienia Budowania

(Ta odpowiedź jest lekko dostosowaną wersją Sherman Lo'S answer)

Dodatek

Bardziej szczegółowe informacje na ten temat można znaleźć również w pierwszej odpowiedzi na to pytanie . Jest też kilka przydatnych informacji tutaj .

 165
Author: Clay Bridges,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:46:50

Jeśli naprawisz swoje ustawienia i nadal widzisz "brak podstawowego SDK" i nie możesz zbudować, przeładuj swój projekt. Wyszedłem Xcode, ale zamknięcie i ponowne otwarcie prawdopodobnie również działać.

 8
Author: John Stephen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-15 19:30:31

Linki podane przez Clay Bridges do pobrania wcześniejszych wersji zestawów SDK Xcode i iPhone OS nie działają. Jednak edytowanie tych linków w celu zastąpienia pierwszej instancji "iphone' a "przez" ios " działa, przynajmniej w przypadku linku Snow Leopard(pobieranie teraz).

Poprawne linki, a także informacje na temat instalacji starszych zestawów SDK iOS w nowszych instalacjach Xcode, pochodzą z tego wpisu na blogu Chrisa Fletchera: howto install iPhone sdk 2.0.3.1 for xcode 3.2 wysoce zalecane!

 5
Author: SteveCaine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-18 13:06:06

Też miałem ten sam problem. Miałem również problem, gdy za pomocą wielu celów przełączanie z powrotem do poprzedniego celu Xcode zapomniałby zmienić kilka rzeczy, jak przełączanie z celu iOS do celu MacOS.

Opcja / alt kliknięcie na rozwijaną listę

Ujawnił kilka dodatkowych opcji, które są bardzo przydatne.

 3
Author: user245019,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-13 18:51:46