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
- Załaduj swój projekt
- Z menu wybierz Projekt> Edytuj ustawienia projektu ...
- 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.
- Zamknij to okno.
- Z menu wybierz Projekt> Edytuj aktywny cel „Twój cel”
- W obszarze Architektura> Podstawowe SDK wybierz jedną z dostępnych opcji urządzenia lub symulatora: iPhone 3.2 lub iPhone 4.0.
- 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”.
(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 .