2012-09-18 8 views

Odpowiedz

6

Możesz zainstalować wiele wersji xcode. W przeszłości była to poprawka wymagająca użycia starszej funkcji xcode.

Jest to obejście problemu, a pliki projektu mogą w końcu ewoluować w sposób, który nie obsługuje już starszych narzędzi, ale na razie pozwoli na zbudowanie starszych obiektów.

Jeśli masz pojedynczy projekt, z którym chcesz pracować w obu wersjach XCode, może okazać się, że będziesz musiał zarządzać oddzielnymi plikami kontrolnymi projektu za pomocą sztuczek sterowania źródłami i/lub tasowania plików.

Zalecam również zmianę struktury projektu i zarządzanie plikami binarnymi (np. Modele Core Data) za pomocą starej wersji, ponieważ XCode 4.5 będzie kompatybilny wstecz, ale zgodność z przodami rzadko jest zapewniona.

+0

Trzymałem kopię XCode44.app w moim folderze aplikacji, aby to zrobić i zostało usunięte przez aktualizację 10.8.2 -_-... !!! Masz pomysł, jak pobrać go ponownie? – Olivier

+5

@Olivier - Apple nadal ma Xcode 4.4 wymienione w ich pobraniach dla programistów: https://developer.apple.com/downloads/index.action?name=Xcode# –

+1

Również kopie zapasowe Time Machine ... – jrtc27

-1

Możesz dodać ciąg "armv6 armv7" jako architekturę. Nie wybieraj predefiniowanych ustawień.

+3

To nie działa. Możesz wpisać 'armv6 armv7' jako architekturę, ale (o ile nie ma jakiegoś innego kroku, o którym nie wspomniałeś), nie zbudujesz pliku wykonywalnego dla armv6 w Xcode 4.5. – Nate

+0

W XCode 4.1/4.2 zrzucili armv6 jako ustawienie domyślne, ale czytając je do właściwości projektu "Architektury" jako @ user1689643, napisali, że faktycznie zbuduje również architekturę armv6. Teraz w XCode 4.5 ta sztuczka, jak również dodanie jej do listy "Poprawne architektury" nadal nie działa, a otrzymasz ostrzeżenie o kompilacji 'ostrzeżenie: brak reguły przetwarzania pliku '$ (PROJECT_DIR) /mypath/mysrcfile.c 'typu sourcecode.cc dla architektury armv6'. Wygląda na to, że XCode.app (v4.5) wyłączył wsparcie dla armv6 i będziesz potrzebował starszej wersji XCode do zbudowania tego fragmentu architektury. –

+1

@NeoZenith, w końcu zorientowałem się, jak to zrobić, bez * przechowywania * starszych Xcode. [Rozwiązanie zamieszczone tutaj] (http://stackoverflow.com/a/13061562/119114) – Nate

1

Istnieje inne rozwiązanie, które znalazłem w blogu chpwn: Building for armv6 in Xcode 4.5.
Pozwala to na pracę z Xcode 4.5, ale kompilowanie przy użyciu 5.1 SDK. Wadą: nie można używać zestawu SDK iOS 6 podczas korzystania z tej sztuczki, a nie można budować dla armv7.

+1

Niestety, chpwn nie wspomniał o ważnym kroku, który początkowo mnie potknął. Musiałem również zdefiniować niestandardową ** regułę budowania **. Wyjaśnienie [szczegółowe w mojej odpowiedzi tutaj] (http://stackoverflow.com/a/13061562/119114). Ponadto pliki wykonywalne armv7 będą działały na armv7, bez korzystania z nowych ulepszeń/optymalizacji armv7s. – Nate

1

Tak, istnieją obejścia. Jeśli chcesz skorzystać z nowych funkcji systemu iOS 6, wypróbuj jedną z pierwszych kilku odpowiedzi: to this related question. The first answer wymaga użycia Xcode 4.4 i 4.5. Jeśli nie chcesz już otwierać Xcode 4.4, then use the second answer.

Jeśli chcesz po prostu zbudować plik wykonywalny w Xcode 4.5, który działa na urządzeniach armv6, armv7 i armv7s, bez korzystania z nowych interfejsów API SDK iOS 6, to masz can see my answer to another question, co jest znacznie prostsze ... ale ma ograniczenia, że ​​nie możesz korzystać z nowych funkcji systemu iOS 6 na urządzeniach z systemem iOS 6.

Powiązane problemy