Zainstaluj Xcode 3.2.3 z iPhone SDK 4, otrzymaj komunikat „Brak podstawowego zestawu SDK”, nie widzę innych zestawów SDK

80

Stworzyłem tę wiki społeczności, aby połączyć ze sobą wiele innych pytań i odpowiedzi, które widziałem tutaj na SO. Jeśli tu jesteś, prawdopodobnie zainstalowałeś ostateczną wersję Xcode 3.2.3 z iPhone SDK 4 ( link do pobrania , reg reqd), a następnie napotkałeś jeden lub oba z tych problemów:

  • We wcześniej działającym projekcie Xcode iPhone gdzieś pojawia się komunikat „Brak podstawowego zestawu SDK”. Coś takiego:

    Ruh-roh!

  • W powiązanej, ale bardziej ogólnej obserwacji, żadna z wcześniej dostępnych opcji Device or Simulator SDK (np. 3.0, 3.1, 3.1.3, ...) nie jest dostępna tam, gdzie je widzieliśmy.

Clay Bridges
źródło

Odpowiedzi:

165

Przegląd

Wyjaśnię, dlaczego tak się dzieje, a następnie wyjaśnię, jak rozwiązać konkretny problem „Brak podstawowego zestawu SDK”. Możesz przejść do samego końca, aby naprawić, chociaż polecam przeczytanie tego wszystkiego. Polecam również doskonałe podejście Johna Muchowa w tej kwestii.

Jeśli jesteś szczególnie zainteresowany uaktualnieniem Xcode 3.2.4, które ma mocno powiązany problem, możesz porozmawiać tutaj .

Jeden pakiet SDK, aby wszystkimi rządzić

Oto oferta: 4.0 jest teraz jedyną wersją SDK dozwoloną do przesyłania nowych lub zaktualizowanych aplikacji tylko na iPhone'a. Jest to bezpośrednio z listy kontrolnej gotowości Apple iOS 4 (reg reqd):

Wszystkie nowe aplikacje i aktualizacje istniejących aplikacji muszą być tworzone za pomocą zestawu iPhone SDK 4. Należy pamiętać, że App Store nie będzie już obsługiwać aplikacji przeznaczonych dla systemu iOS 2.x.

Przypuszczalnie - zgaduję tutaj - aplikacje przeznaczone tylko na iPada i aplikacje uniwersalne powinny korzystać z pakietu SDK 3.2. Właśnie dlatego 4.0 i 3.2 to jedyne opcje dla SDK.

Z tego powodu Twój projekt jest teraz uszkodzony, ponieważ SDK, do którego był wcześniej mapowany, jest przestarzały , gones-ville.

(Ale) 3 to magiczna liczba

Zrelaksować się. Nadal możesz kierować reklamy na urządzenia z systemem iPhone OS 3.0 (ale nie starszym). SDK, którego używasz do kompilacji , nie ogranicza - w dół - wersji iOS, którą możesz zaprogramować lub obsługiwać. Po załataniu rzeczy w projekcie itp. (Por. Następna sekcja) możesz ustawić „Miejsce docelowe wdrożenia iPhone OS” na niższą wersję iOS. Krótkie ujęcie, 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ł zgodności z wywołaniami tylko w wersji 3.0 ani nie będzie miał do tego symulatora. A jeśli chcesz obsługiwać funkcje 4.0, będziesz musiał wykonać kod warunkowy, aby zapobiec awariom na urządzeniach 3.0. Zabawa.

Nadal możesz pobrać (z Apple!) I zainstalować poprzednią wersję Xcode lub SDK (por. Tutaj ). Tak, możesz zainstalować wiele wersji Xcode w różnych katalogach, tj. Umieścić tylko jedną wersję w / Developer. Możesz użyć starego Xcode, aby przetestować zgodność aplikacji z pakietem SDK 3.x, przenosząc ciężką pracę do wymyślnego kompilatora i symulatora. Ale nie możesz już używać produktów z poprzednich pakietów SDK do przesyłania do sklepu z aplikacjami.

FWIW, planuję zrobić to sprawdzenie przed wysyłką.

W jakim stanie jest mój stan

Matt Gallagher opublikował post Cocoa with Love dotyczący wersji kodu warunkowego zatytułowany „Wskazówki i porady dotyczące warunkowego kodu iOS3, iOS3.2 i iOS4” . Jeśli planujesz warunkowe korzystanie z funkcji 4.0, jest to stanowcze zalecenie, aby to sprawdzić.

Naprawianie braku podstawowego zestawu SDK

  1. Załaduj swój projekt
  2. Z menu wybierz Projekt> Edytuj ustawienia projektu ...
  3. W obszarze Architektura> Podstawowy zestaw SDK wybierz jedną z dostępnych opcji urządzenia: iPhone 3.2 lub iPhone 4.0. Jeśli korzystasz tylko z iPhone'a, najlepszym rozwiązaniem jest 4.0.
  4. Zamknij to okno.
  5. Z menu wybierz Projekt> Edytuj aktywny cel „Twój cel”
  6. W obszarze Architektura> Podstawowe SDK wybierz jedną z dostępnych opcji urządzenia lub symulatora: iPhone 3.2 lub iPhone 4.0.
  7. Jeśli chcesz kierować reklamy na poprzednie wersje systemu iOS, w tym samym oknie w obszarze Wdrażanie> Miejsce docelowe wdrożenia systemu iPhone OS wybierz najniższą wersję, którą chcesz obsługiwać. Należy pamiętać, że obsługa wersji 2.x za pośrednictwem sklepu z aplikacjami jest przestarzała. Zobacz cytat „Lista kontrolna gotowości” powyżej.

Podstawowa lokalizacja SDK dla Xcode 4 i nowszych

Wykonaj powyższe kroki, ale w przypadku kroku 2 kliknij:

  • Wybierz nawigator projektu, używając ikony folderu po lewej stronie paska bocznego nawigatora
  • Wybierz projekt, który będzie u góry tego widoku.
  • Konfiguracja projektu pojawi się w głównym panelu edytora; wybierz „Ustawienia budowania” u góry, a poniżej będzie sekcja „Architektura”.

      Nawigator projektu           Ustawienia kompilacji

(Ta odpowiedź jest nieznacznie przystosowane wersja Shermana Lo „s odpowiedzi )

Uzupełnienie

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

Clay Bridges
źródło
3
Szybka uwaga dla tak niewidomych jak ja, którzy uważają, że element Ustawienia projektu nie istnieje, jest to Projekt> Edytuj ustawienia projektu.
Lou Zell,
1
„Nadal możesz pobrać (z Apple!) I zainstalować poprzednią wersję Xcode (np. 3.1.4: Leopard, Snow Leopard)”. to łącze jest w rzeczywistości do wersji 3.1.3 sdk, a nie 3.1.4.
Remover,
Ludzie: to jest wiki, więc nie krępuj się samodzielnie naprawiać rzeczy.
Clay Bridges
2
Zwróć uwagę, że ustawienia docelowe zastępują ustawienia projektu; nie musisz ustawiać go w obu miejscach. Zalecam, aby nie ustawiać go w ustawieniach docelowych (i usuwać, jeśli tam jest), a następnie ustawiać go tylko w ustawieniach projektu. BTW: Jeśli ustawisz to w ustawieniach projektu, upewnij się, że masz wybrane wszystkie konfiguracje. (Lub użyj karty „Ogólne” i ustaw ją w wyskakującym okienku „Podstawowy pakiet SDK dla wszystkich konfiguracji”).
geowar
1
Możesz zaktualizować tę odpowiedź, aby uwzględnić nowy najnowszy zestaw SDK.
Steven Fisher
8

Jeśli naprawisz ustawienia i nadal widzisz komunikat „Brak podstawowego zestawu SDK” i nie możesz skompilować, wczytaj ponownie projekt. Opuściłem Xcode, ale zamykanie i ponowne otwieranie prawdopodobnie również zadziała.

John Stephen
źródło
dlaczego to? wydaje się dziwne, że trzeba zamknąć xcode i załadować kopię zapasową tylko po zmianie ustawień: O
RyBolt
Dobre pytanie RyBolt, ale tak właśnie jest. Apple musi gdzieś coś buforować, a ponowne załadowanie to zrzuca, ale to tylko przypuszczenie.
John Stephen,
5

Linki podane przez Clay Bridges do pobierania wcześniejszych wersji zestawów SDK Xcode i iPhone OS nie działają. Jednak edycja tych łączy w celu zastąpienia pierwszego wystąpienia „iphone” przez „ios” działa, przynajmniej w przypadku łącza Snow Leopard (pobieranie teraz).

Prawidłowe linki oraz informacje na temat instalowania starszych pakietów SDK iOS w nowszych instalacjach Xcode pochodzą z tego wpisu na blogu autorstwa Chrisa Fletchera: Jak zainstalować iPhone SDK 2.0.3.1 dla Xcode 3.2 Gorąco polecam!

SteveCaine
źródło
Dobra informacja, Steve. Myślę, że moja odpowiedź to wiki społeczności. Jakakolwiek szansa, że ​​mógłbyś go edytować z poprawnymi informacjami. Dzięki.
Clay Bridges
Jestem nowy w StackOverflow i myślę, że potrzebuję więcej „punktów”, zanim strona pozwoli mi edytować posty napisane przez innych. Interfejs użytkownika nie daje mi żadnego oczywistego sposobu na powiedzenie „edytuj ten post” w swoim poście. Przepraszam.
SteveCaine
3

Ja też miałem ten sam problem. Miałem również problem, gdy przy użyciu wielu celów przełączanie z powrotem do poprzedniego docelowego xcode zapominało o zmianie kilku rzeczy, takich jak przełączanie się z celu iOS na cel MacOS.

opcja / alt klikając menu rozwijane

ujawnił kilka dodatkowych opcji, które były bardzo przydatne.

user245019
źródło