2016-06-15 5 views
22

Występują problemy ze zgodnością dla niektórych zewnętrznych frameworków, których używam w moim projekcie. Czy istnieje sposób na zmianę Base SDK na Xcode 8? Obecnie w ustawieniach projektu wyświetlany jest tylko najnowszy pakiet SDK.Xcode 8 ze starszym Base SDK

Próbowałem kopiowanie starszej SDK z innej wersji Xcode się tutaj, ale to nie działa:

/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

Odpowiedz

29

Począwszy Xcode 7.3, oprócz kopiowania w SDK, trzeba również edytować pewną Info.plist plik as described here for macOS in the post by agx. Wygląda na to, że plik jest podobny do iOS na

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist 

Spróbuj zmienić wartość z MinimumSDKVersion tam od 10,0 do wersji SDK cokolwiek chcesz.

Nie próbowałem tego z iOS, ale korzystając z tego obejścia, udało mi się zbudować cel makro z macOS 10.6, używając Xcode 8.0 (8A218a) ("GM").

+1

Mogę potwierdzić, że działa to również na iOS. Pamiętaj, że jeśli chcesz zbudować symulator, musisz wykonać te same kroki dla 'iPhoneSimulator.platform'. – dcow

+1

Pomoże mi to zbudować wersję dla iOS 9.3 zamiast iOS 10 z Xcode 8. Dzięki! – jfmg

+0

Dzięki, to naprawdę pomaga. Interesujące jest jednak to, że nie można ustawić celu wdrożenia na karcie informacji na 10.1 z prezentu, więc należy go wpisać: –

0

Po prostu trzeba zmienić ustawienia „rozmieszczenia docelowy”. Zasadniczo używasz najnowszego dostępnego zestawu SDK jako podstawowego zestawu SDK, ale wybierasz docelową wersję OS X. Oczywiście zależy to od tego, dlaczego chcesz używać starszego zestawu SDK?

1

Moja odpowiedź oryginalny, choć pracował z Xcode 8, z jakiegoś dziwnego powodu, który nie jest wart wyjaśniając, już nie pracuje z Xcode 9 na starym projekcie konkretnego klienta. Więc używałem alternatywnego przepływu pracy, który naprawdę nie jest zły.

Aby pracować nad tym projektem, otwieram go w zarówno starszym Xcode, który można skompilować z wymaganym pakietem SDK, jak i ostatnim Xcode. Wstawiłem stare okno Xcode w tle i wykonałem swoją pracę w ostatnim Xcode. Kiedy jestem gotowy do testowania zmian, robię plikowi>Zapisz wszystko (⌥⌘S), a następnie przełączyć się do starego Xcode i budować (⌘B). Gdy budowa jest zrobione, mogę przełączyć z powrotem do ostatniej Xcode i Produkt>Wykonaj działania>Uruchom bez budowania (^⌘R). Ponieważ format pliku dSYM nie został zmieniony, punkty przerwania działają zgodnie z oczekiwaniami.

Zaletą jest to, że nie jest wymagane hacking z Xcode, a jedyną rzeczą, jaką trzeba pamiętać o starej Xcode Xcode 3 (w moim przypadku) jest miłosiernie: ⌘B.

Jedna mała uwaga: W tym szczególnym Cel projektu, w Ustawienia kompilacji, ma zwyczaj tworzenie produktów Path. Jest to typowy sposób, w jaki aplikacje na komputery Mac zostały zbudowane wiele lat temu. Aby upewnić się, że obie firmy Xcodes pracują z tym samym produktem, jeśli stare i najnowsze Xcodes plasujące wersję który zmienił domyślny tworzenie produktów Path może trzeba ustawić tworzenie produktów Path.

Przepływ pracy może być jeszcze łatwiejszy dzięki skryptom narzędzi wiersza poleceń xcodebuild i xcode-select, ale to wystarczy. Wraz z ogłoszeniem przez Apple na tegorocznej konferencji WWDC o rezygnacji z 32-bitowych aplikacji na Maca w ciągu najbliższych dwóch lat, mój klient ma przed sobą trudne decyzje.