Użyj Xcode 7 z iOS 10

138

Chcę używać Xcode 7 z iOS 10.

Jak rozumiem, praca z iOS 10 beta wymaga Xcode 8 beta, więc powinienem zaktualizować mój Xcode. Jednak mój kod nie może zostać zbudowany przez nowy kompilator, więc chcę pozostać przy Xcode 7.

Jak mogę to osiągnąć?

Fanruten
źródło
2
Proszę rozważyć przepisanie pytania na minimalne, kompletne i weryfikowalne
Katya Handler
4
@ParagBafna: ale objective-c i swift to języki programowania! Co sprawia, że ​​Xcode jest narzędziem używanym głównie do programowania . To pytanie nie powinno być nigdy zamknięte.
tharkay
W odpowiedzi na zduplikowane pytanie przedstawiono gotowe obrazy dysków, więc nie musisz instalować nowszego Xcode: stackoverflow.com/a/39865199/286361
Vladimir

Odpowiedzi:

197

Musisz użyć DeveloperDiskImage z Xcode 8 Beta. W tym celu wyodrębnij aplikację Xcode 8 Beta i skopiuj DeveloperDiskImage dla iOS 10 do folderu Xcode.

Załóżmy, że wyodrębniasz Xcode do Downloads / Xcode-beta.app

cp -r /Users/fanruten/Downloads/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A345\) /Applications/Xcode_7.2.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

Po skopiowaniu DeveloperDiskImage należy uruchomić Xcode i podłączyć urządzenie iOS do komputera Mac.

Edycja:
przy standardowej instalacji Xcode można utworzyć miękkie łącze:

sudo ln -s \
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5309d\) \
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0
Fanruten
źródło
Jeśli to nie zadziała, to po prostu dlatego, że nie ma Xcode_7.2.1.app, to tylko Xcode.app, dziękuję za to!
Markus
4
Wygląda na to, że nie działa z iOS 10 beta 2. Występuje błąd z kAMDMobileImageMounterDeviceLocked. Nie znalazłem jeszcze obejścia.
Jonathan Mitchem
2
Działa dla mnie z beta3
mbo42
1
Czy ktoś ma szczęście z wersją beta 6?
mlevi
4
Jeśli ta odpowiedź nie działa, sprawdź, czy końcowy ciąg w folderze Device Support, np. Wersja (14A5309d) odpowiada wersji na urządzeniu z systemem iOS. Oznacza ziarno beta. Jeśli tak się nie stanie, zaktualizuj Xcode, aby pasował do materiału źródłowego urządzenia z systemem iOS, a następnie postępuj zgodnie z powyższą odpowiedzią.
Hunter Monk
70

Możesz użyć dowolnego zestawu SDK w starszej wersji Xcode, po prostu kopiując i wklejając folder wymaganego systemu operacyjnego. Oczywiście nie możesz też mieć dwóch aplikacji o tej samej nazwie, więc po prostu zmień ich nazwy na Xcode 7 i Xcode 8.

kliknij prawym przyciskiem myszy / kliknij, przytrzymując klawisz Ctrl, ikonę aplikacji Xcode 8, aby wyświetlić zawartość pakietu i przejdź do tej lokalizacji i skopiuj folder iOS 10.0 lub WatchOS 3.0 itp.

/Applications/Xcode8.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport /Applications/Xcode8.app/Contents/Developer/Platforms/WatchOS.platform/DeviceSupport

wprowadź opis obrazu tutaj

Następnie przejdź do tej samej lokalizacji w Xcode 7 i wklej folder.

/Applications/Xcode7.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport /Applications/Xcode7.app/Contents/Developer/Platforms/WatchOS.platform/DeviceSupport

wprowadź opis obrazu tutaj

Zrestartuj Xcode 7. Będziesz musiał trochę poczekać, aż Xcode odbuduje symbole itp.

Edison
źródło
2
Na marginesie, przetwarzanie plików symboli może zająć kilka minut. Korzystam z najnowszego i najlepszego MacBooka Pro i trochę mi to zajmuje. Musiałem odłączyć telefon po pierwszym podłączeniu go do b / c Xcode omyłkowo powiedział, że jest zablokowany. Potem działało świetnie, ale przetwarzanie plików zajęło trochę czasu.
kbpontius
Tak, wspomniałem o tym w moim poście. Twoje zdrowie.
Edison
Musimy obsługiwać iOS 6 i 7, więc użyłem powyższej techniki, aby dodać obsługę wersji 6.0, 6.1, 7.0 i 7.1 do Xcode 8.
iCyberPaul
Dobra odpowiedź @tymac - podążyłem za twoimi krokami, ale nie widzę iOS 10 w celu wdrożenia. Dowolny pomysł?
Tal Zion
@TalZion Nie widzisz wersji na liście rozwijanej, ponieważ musisz upewnić się, że wersja Xcode, której używasz, jest zgodna z wersją na twoim urządzeniu. To jest problem z obrazem dysku SIM.
Edison
25

Dla mnie żadna z powyższych sugestii nie zadziałała.

Zamiast tego przeszedłem do tej lokalizacji (naciśnij CMD + SHIFT + K, aby wstawić poniższą ścieżkę) (przez wyszukiwarkę)

/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

I skopiowałem 10.0(14A5339a)folder, który zawiera obraz dysku programisty. Następnie wkleiłem go do

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

EDYCJA: używam Xcode7 (wersja 7.3.1-7D1014), publiczna beta 6 iOS 10 (14A5345a) - jest wydana 19 sierpnia 2016

rak appdev
źródło
Miły! Jakich wersji Xcode używasz? Wygląda na to, że używasz Xcode i Xcode beta - czy możesz dodać wersję dla obu?
Cullub
1
to rozwiązanie zadziałało dla mnie! Musiałem wrócić do xcode 7.3.1, aby pracować nad starym projektem, który utknął na Swift 2.x <2.3 (z powodu zależności bibliotek innych firm, które nie są kompatybilne z wyższymi wersjami Swift) i mogę teraz budować na moim iPhonie na iOS 10.2, dzięki !!
szklarnia
2

Chociaż kopiowanie folderu zawierającego obraz dysku jest nadal najlepszym sposobem, nie miałem czasu pobrać najnowszego Xcode, aby przejąć folder z obrazem dysku, więc w zasadzie zarchiwizowałem aplikację i wyeksportowałem ją przy użyciu opcji zapisz do wdrożenia, następnie zainstalowałem go na urządzeniu testowym za pomocą aplikacji iTunes.

W moim przypadku mam Xcode 8.0, chcąc zbudować na urządzeniu 10.2.1 iOS.

wprowadź opis obrazu tutaj

TheFuquan
źródło
1

Pascal && Fanruten mają rację.

testowano 12 sierpnia, Xcode w wersji 7.3.1 (7D1014) ORAZ iOS 10.0 (14A5309d) na telefonie iPhone6 ​​Plus.

Zrobiłem łącze symboliczne zgodnie z sugestią (ścieżka jest nieco inna ... patrz poniżej.), Ale działa z linkowaniem do Xcode w wersji 8.0 beta 4 (8S188o).

tylko dla kompletności:

Beta 4

sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5322e\)/  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0

Beta 5

sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5339a\)/  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0
ingconti
źródło
Dla linku symbolicznego z XCode 8 Beta 5 do Xcode 7:sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5335a\)/ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0
cdf1982,
0

Odpowiedź Tymaca prawie mi pomogła. Zamiast kopiować i przeszukiwać, otworzyłem dwa okna Findera, a następnie przeciągnąłem folder iOS 10 do folderu Xcode 7. Gdy znajdzie się w Xcode 7, otwórz folder i upewnij się, że istnieje plik dmg.

Wcześniej przeciągnąłem kopię folderu obsługi urządzenia iOS 10 na mój pulpit, a następnie skopiowałem ją do folderu Xcode 7. Wydawało się, że to rozpakowało plik dmg, więc Xcode 7 nadal narzekał. Musi być plikiem dmg w folderze.

D. Rothschild
źródło
0

Jedno ostrzeżenie. Próbowałem użyć XCode 7.3.1 z obrazami ios 10 z XCode 8.1 dla projektu cordova (działa), ale miałem problemy z uprawnieniami do powiadomień push (różne ustawienia dla ios 8/9/10). Nie jestem tego pewien, ale wydaje mi się, że w 7.3.1 brakuje niektórych dyrektyw kompilatora

3176243
źródło
0

Oto dla XCode 9 i iOS 11 Beta 1:

sudo ln -s \
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0\ \(15A5278f\) \
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0
Bryan
źródło
Czy to faktycznie działa dla Ciebie? Nie mogę dodać symulatora iOS 11 w Xcode 8.
Ortwin Gentz,
@OrtwinGentz ​​Sprawdź, czy możesz uruchomić symulator w Xcode 9 - jeśli działa, powinieneś być w stanie zamknąć Xcode 9 i debugować aplikację na symulatorze z XC 8.
Bryan
Oczywiście mogę uruchomić Symulator w Xcode 9. Ale nie mogę budować za pomocą Xcode 8 (względem zestawu SDK systemu iOS 10) i debugować na symulatorze iOS 11.
Ortwin Gentz
czy ta metoda będzie działać na urządzeniu z Xcode 7.3 i iOS 11?
DHEERAJ
-1

moje dwa centy za Xcode w wersji 11 beta przeciwko Xcode 10 po wwdc2019:

ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/13.0 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/13.0

więc mogę używać mojego iPhone'a z iOS 13 beta w Xcode 10.

po ln -s ponownie uruchom Xcode

ingconti
źródło