Can't locate device support files after iOS update?

Chyba 'Nelze najít soubory podpory zařízení' v Xcode

15/05/2023

Rating: 4.14 (14092 votes)

Jako vývojáři pro platformu Apple se s tím setkal snad každý z nás. Pracujete na svém projektu, připravujete se na testování na reálném zařízení, a najednou, po aktualizaci iOS na vašem iPhonu či iPadu, se objeví nepříjemná hláška: „Could not locate device support files“ neboli „Nelze najít soubory podpory zařízení“. Tato zpráva může být frustrující, zvláště když potřebujete rychle nasadit opravu nebo otestovat novou funkci. Důvodem je, že vaše verze Xcode nemá vestavěnou podporu pro nejnovější verzi operačního systému vašeho zařízení. Naštěstí existuje několik spolehlivých řešení, která vás vrátí do hry. V tomto rozsáhlém průvodci se podíváme na to, proč se tato chyba objevuje a jak ji krok za krokem efektivně vyřešit, ať už se jedná o jednoduchou aktualizaci nebo složitější ruční zásah.

How do I install iOS device support files for Xcode?
Easily install iOS Device Support files for Xcode using this terminal script: Steps: Copy and paste the command into your terminal and press Enter. Enter the desired iOS version (e.g., 16.6) when prompted. Enter your macOS password when asked (required to copy files into Xcode’s system directory).
Obsahový index

Proč se tato chyba objevuje a co jsou soubory podpory zařízení?

Než se pustíme do řešení, je důležité pochopit podstatu problému. Xcode, vývojové prostředí od Applu, potřebuje specifické soubory, aby mohlo komunikovat s vaším iOS zařízením, ladit aplikace a instalovat je na něj. Tyto soubory, známé jako „Device Support Files“ (soubory podpory zařízení), obsahují důležité informace o konkrétních verzích iOS, iPadOS, watchOS nebo tvOS. Když Apple vydá novou verzi operačního systému (například iOS 17), vaše stávající verze Xcode (například Xcode 14) ji nemusí znát, protože tyto soubory ještě neobsahuje. Xcode je obvykle aktualizováno tak, aby podporovalo nejnovější OS, ale pokud jste svou verzi Xcode neaktualizovali, nebo pokud používáte beta verzi OS, která ještě není plně podporována stabilní verzí Xcode, narazíte na zmíněnou chybu.

Struktura těchto souborů je poměrně jednoduchá. Najdete je uvnitř balíčku aplikace Xcode, konkrétně v adresáři /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/. Každá složka v tomto adresáři představuje konkrétní verzi iOS (např. 16.0, 16.1, 17.0). Pokud Xcode nemůže najít složku odpovídající verzi iOS na vašem zařízení, zobrazí chybu.

Okamžité řešení: Aktualizace Xcode

Nejjednodušším a často nejúčinnějším řešením je aktualizovat Xcode na nejnovější stabilní verzi. Apple pravidelně vydává aktualizace Xcode, které přidávají podporu pro nejnovější verze iOS a opravují chyby. Pokud je k dispozici nová verze Xcode, která podporuje verzi iOS na vašem zařízení, stačí ji stáhnout a nainstalovat z Mac App Store nebo z webových stránek pro vývojáře Apple (developer.apple.com). Po aktualizaci a restartu Xcode by se mělo vaše zařízení rozpoznat automaticky.

Tento přístup je ideální, pokud nemáte důvod zůstávat u starší verze Xcode (například kvůli kompatibilitě s jinými projekty nebo staršími SDK). Vždy se ujistěte, že vaše verze macOS je také dostatečně nová pro nejnovější Xcode.

Kdy aktualizace nestačí: Ruční instalace souborů podpory zařízení

Někdy není možné nebo žádoucí aktualizovat Xcode. Možná pracujete na projektu, který vyžaduje starší verzi Xcode, nebo potřebujete spustit aplikaci na zařízení s beta verzí iOS, kterou stabilní Xcode ještě nepodporuje. V takových případech můžete ručně zkopírovat chybějící soubory podpory zařízení z novější verze Xcode do té starší.

Krok za krokem: Ruční kopírování souborů

  1. Získejte novější verzi Xcode: Pokud ji ještě nemáte, stáhněte si nejnovější stabilní nebo beta verzi Xcode (např. Xcode 15 pro iOS 17) z webu developer.apple.com. Nemusíte ji instalovat jako primární Xcode, stačí ji stáhnout a rozbalit (např. do složky Stažené soubory nebo vedle existujícího Xcode).
  2. Vyhledejte soubory podpory v novém Xcode:
    • Přejděte do složky, kam jste stáhli (nebo kde máte nainstalovanou) novější verzi Xcode (např. /Applications/Xcode-15.0.app).
    • Klikněte pravým tlačítkem myši na ikonu Xcode a zvolte „Zobrazit obsah balíčku“ (Show Package Contents).
    • Přejděte do cesty: Contents > Developer > Platforms > iPhoneOS.platform > DeviceSupport.
    • Zde najdete seznam složek s čísly verzí iOS (např. 16.0, 16.1, 17.0). Vyhledejte složku odpovídající verzi iOS na vašem zařízení, která vám v původním Xcode chybí. Pokud je vaše zařízení na beta verzi (např. iOS 17.0 beta), složka se může jmenovat například 17.0 (21A5248v) – alfanumerický řetězec za číslem verze je normální.
  3. Zkopírujte složku podpory: Zkopírujte celou tuto složku (např. 17.0 nebo 17.0 (21A5248v)) do schránky.
  4. Vložte ji do staršího Xcode:
    • Přejděte do složky, kde máte nainstalovanou starší verzi Xcode (např. /Applications/Xcode.app).
    • Opět klikněte pravým tlačítkem a zvolte „Zobrazit obsah balíčku“.
    • Přejděte do stejné cesty: Contents > Developer > Platforms > iPhoneOS.platform > DeviceSupport.
    • Vložte zkopírovanou složku do tohoto adresáře. Možná budete muset zadat heslo správce.
  5. Restartujte Xcode a znovu připojte zařízení: Zavřete Xcode, pokud je otevřené. Odpojte zařízení od Macu a poté ho znovu připojte. Otevřete Xcode. Nyní by se mělo vaše zařízení objevit a být připraveno k použití.

Tato metoda je velmi efektivní a šetří spoustu času, protože se vyhnete kompletní aktualizaci, která by mohla zabrat hodiny stahování. Nicméně, je důležité si uvědomit, že to není oficiálně podporovaný postup a v některých okrajových případech se mohou objevit drobné nekompatibility. Většinou však funguje bez problémů.

Speciální případ: iOS 17 a novější s Xcode 14

Pro iOS 17 a novější verze se objevil specifický problém s Xcode 14. I když ruční kopírování souborů podpory může pomoci, Apple zavedl novou technologii CoreDevice. Pro plnou podporu iOS 17 v Xcode 14 (nebo starších verzích Xcode, které ještě plně nepodporují iOS 17) existuje obejití, které vyžaduje menší zásah do nastavení Xcode a navíc počáteční nastavení zařízení s Xcode 15.

Postup pro iOS 17+ (vyžaduje Xcode 14+):

  1. Povolte CoreDevice v terminálu: Otevřete aplikaci Terminál a zadejte následující příkaz:
    defaults write com.apple.dt.Xcode DVTEnableCoreDevice enabled

    Tento příkaz povolí experimentální funkci CoreDevice, která zlepšuje komunikaci s novějšími iOS zařízeními.

  2. Restartujte Xcode 14: Po spuštění příkazu zavřete a znovu otevřete Xcode 14.
  3. Počáteční nastavení s Xcode 15 (klíčový bod!): Zde je důležitý detail: Ačkoliv můžete chtít pokračovat s Xcode 14, počáteční nastavení pro vývoj na zařízeních s iOS 17 (například prvotní párování nebo „důvěřování“ zařízení) vyžaduje Xcode 15. Musíte připojit své iOS 17 zařízení k Macu se spuštěným Xcode 15 a nechat ho dokončit úvodní nastavení pro vývoj. Teprve poté, co je zařízení správně nastaveno v Xcode 15, můžete ho odpojit a začít používat s Xcode 14 (za předpokladu, že jste provedli kroky 1 a 2 a případně zkopírovali soubory podpory).
  4. Párování/důvěřování zařízení: Možná budete muset jít do „Devices and Simulators“ v Xcode (Window > Devices and Simulators) a znovu spárovat nebo důvěřovat zařízení.

Bez tohoto počátečního nastavení v Xcode 15 se vaše iOS 17 zařízení nemusí v Xcode 14 objevit nebo se s ním nebudete moci plně spojit.

Co dělat, když Xcode nestahuje soubory podpory nebo zařízení není vidět?

Někdy se stane, že ani po aktualizaci nebo ručním kopírování se problém nevyřeší. Zde jsou další kroky pro řešení problémů:

  • Instalace doplňkových komponent: V Xcode přejděte do Xcode > Preferences > Components. Zkontrolujte, zda nejsou k dispozici nějaké doplňkové komponenty nebo aktualizace, které byste měli nainstalovat, zejména ty související s iPadOS nebo konkrétní verzí iOS, na kterou cílíte.
  • Resetování nastavení důvěryhodnosti: Na vašem iOS zařízení přejděte do Nastavení > Obecné > Přenést nebo resetovat iPhone > Resetovat > Resetovat polohu a soukromí. Tím se resetuje seznam důvěryhodných počítačů na vašem zařízení. Poté znovu připojte zařízení k Macu a zkontrolujte, zda se objeví v Xcode. Budete muset znovu potvrdit důvěru počítači na zařízení.
  • Komplexní řešení problémů:
    • Přeinstalujte Xcode: Pokud nic nepomáhá, zvažte kompletní odinstalaci a opětovnou instalaci Xcode. Ujistěte se, že jste smazali všechny zbytkové soubory.
    • Restartujte Mac i iPad/iPhone: Jednoduchý restart často vyřeší mnoho drobných softwarových problémů.
    • Zkontrolujte systémové požadavky: Ujistěte se, že váš Mac splňuje minimální systémové požadavky pro verzi Xcode, kterou používáte.
  • Konzultujte fóra a podporu: Pokud problémy přetrvávají, vyhledejte pomoc na Apple Developer Forums nebo kontaktujte přímo podporu Apple Developer. Komunita často sdílí řešení pro specifické, méně časté problémy.

Důležité tipy pro vývojáře: Prevence budoucích problémů

Nejlepší způsob, jak se vyhnout frustraci z chybějících souborů podpory, je prevence. Zde jsou dva klíčové tipy:

  • Zakázat automatické aktualizace operačního systému: Na vašem iOS zařízení přejděte do Nastavení > Obecné > Aktualizace softwaru > Automatické aktualizace a vypněte možnost „Stáhnout aktualizace iOS“ a „Nainstalovat aktualizace iOS“. Jako vývojář byste měli mít plnou kontrolu nad tím, kdy se vaše zařízení aktualizuje. Nechcete, aby se vaše zařízení aktualizovalo uprostřed důležitého projektu a zanechalo vás bez možnosti nasazení.
  • Udržujte více verzí Xcode: Je běžnou praxí mít na Macu nainstalováno více verzí Xcode. Například jednu stabilní verzi (pro aktuální projekty) a jednu beta verzi (pro testování nových funkcí nebo budoucích OS). Stačí přejmenovat složky aplikací (např. Xcode.app na Xcode_14.app a Xcode_15_Beta.app). To vám umožní snadno přepínat mezi verzemi a zajistí kompatibilitu s různými verzemi iOS a projekty.

Tabulka: Přehled řešení problémů se soubory podpory zařízení

Problém/ScénářDoporučené řešeníPoznámky
Chybí podpora pro nejnovější stabilní iOSAktualizujte Xcode na nejnovější stabilní verzi.Nejjednodušší a nejspolehlivější řešení. Vyžaduje kompatibilní macOS.
Chybí podpora pro beta iOS / nechcete aktualizovat XcodeRučně zkopírujte soubory podpory z novějšího Xcode.Stáhněte novější Xcode, zkopírujte složku z DeviceSupport do staršího Xcode.
iOS 17+ s Xcode 14 (nebo starším)Povolte DVTEnableCoreDevice a proveďte počáteční nastavení v Xcode 15.Klíčové je jednorázové spuštění nastavení zařízení v Xcode 15.
Xcode nestahuje soubory / zařízení není vidětZkontrolujte komponenty, resetujte důvěru zařízení, přeinstalujte Xcode, restartujte.Komplexní troubleshooting pro přetrvávající problémy.
Opakující se problémy po aktualizacích OSZakázat automatické aktualizace iOS/iPadOS.Důležitá prevence pro vývojáře.

Často kladené otázky (FAQ)

Proč potřebuji soubory podpory zařízení?

Xcode potřebuje tyto soubory pro komunikaci s vaším fyzickým zařízením. Obsahují specifické informace o verzích operačního systému, které umožňují Xcode správně rozpoznat zařízení, ladit aplikace na něm a nasazovat je. Bez nich Xcode neví, jak s danou verzí iOS pracovat.

Mohu použít starší verzi Xcode s nejnovějším iOS?

Ano, často je to možné pomocí ručního kopírování souborů podpory zařízení z novější verze Xcode do starší. Nicméně, pro nejnovější verze iOS (jako je iOS 17) je nutné provést počáteční nastavení zařízení v aktuálně podporované verzi Xcode (např. Xcode 15), než se pokusíte použít starší verzi.

Kde najdu soubory podpory zařízení online, pokud nemám novější Xcode?

Existují neoficiální repozitáře na GitHubu (např. iOS-DeviceSupport/DeviceSupport/), kde můžete najít jednotlivé soubory podpory. Vždy je ale bezpečnější a doporučenější získat je přímo z oficiální verze Xcode stažené z webu Apple Developer. Použití neoficiálních zdrojů může nést bezpečnostní rizika.

Je bezpečné ručně kopírovat soubory podpory?

Ano, je to poměrně běžná a bezpečná praxe mezi vývojáři. Kopírujete pouze datové soubory, které Xcode potřebuje k rozpoznání zařízení. Nezasahujete do binárních souborů Xcode samotného. Nicméně, vždy je dobré mít zálohu, pokud byste si nebyli jisti.

Co je to symbolický odkaz (symlink) a proč ho nepoužívat?

Symbolický odkaz (symlink) je typ souboru, který odkazuje na jiný soubor nebo adresář. Můžete vytvořit symlink ze složky podpory zařízení z novějšího Xcode do staršího. I když to funguje, obecně se doporučuje kopírování spíše než symlink. Důvodem je, že pokud omylem smažete, přesunete nebo aktualizujete zdrojové Xcode, na které symlink odkazuje, symlink se stane nefunkčním a problém se vrátí. Kopírování vytváří nezávislou kopii, která není ovlivněna změnami ve zdrojovém Xcode.

Závěr

Chyba „Nelze najít soubory podpory zařízení“ je běžným problémem, se kterým se setká mnoho iOS vývojářů. Jak jsme si ukázali, existuje však řada spolehlivých řešení, od jednoduché aktualizace Xcode, přes ruční kopírování souborů, až po specifické workaroundy pro nejnovější verze iOS. Klíčem je pochopení, proč k této chybě dochází, a osvojení si správných postupů pro její řešení. Doufáme, že tento podrobný průvodce vám pomůže rychle se vrátit k vývoji a vyhnout se budoucím komplikacím. Pamatujte, že pro vývojáře je kontrola nad aktualizacemi operačního systému a znalost umístění klíčových souborů neocenitelná.

Chceš-li si přečíst další články podobné jako Chyba 'Nelze najít soubory podpory zařízení' v Xcode, navštiv kategorii iPhone.

Go up