Xcode 4: Build Phases - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Jaký fotograf/ka získal/a cenu za nejpopulárnější příspěvek v Nikon Photo Contest?

V dnešní soutěži hrajeme o:

Seriály

Více seriálů



Software

Xcode 4: Build Phases

13. července 2011, 00.00 | V nastavení "Build Settings" se již vyznáme; nastavení cíle ale ještě neopustíme a podíváme se dnes blíže na vlastní popis toho, jak se přesně cíl sestavuje – "Build Phases".

Nastavení, jemuž se budeme věnovat v dnešním dílu našeho seriálu, je v jistém smyslu v celém projektu to nejdůležitější: "Build Phases" popisují přesný postup sestavení projektu – právě na jejich základě se Xcode "rozhoduje", kdy co přeložit, kdy co umístit jako nezměněný soubor do cílové aplikace apod. Z "akademického" pohledu na věc by tedy možná bývalo mělo smysl, kdybychom jím naše povídání začali; na druhou stranu ale Xcode spravuje "Build Phases" automaticky a natolik dobře, že je poměrně málokdy zapotřebí do tohoto systému zasahovat ručně.

Základy

Přepneme-li v Xcode editor cíle do čtvrté záložky nadepsané "Build Phases", uvidíme něco podobného jako na ilustraci (standardně jsou jednotlivé fáze uzavřené pro lepší přehled a úsporu místa, jako "Target Dependencies" na obrázku; pro otevření stačí jako vždy klepnout na "trojúhelníček" vedle nadpisu):

Položky v tomto seznamu definují všechny uživatelsky volitelné a konfigurovatelné kroky, jež Xcode při sestavování daného cíle provádí: v našem případě vidíme, že dva obrázky a tři "niby" uloží do aplikace jako "bundle resources" ("niby" přitom automaticky vytvoří na základě souborů XIB; k tomu, jak zjistí, kterak to udělat, se ještě vrátíme později). Kromě toho také přeloží čtyři zdrojové soubory a výsledek tohoto překladu spojí se čtveřicí knihoven do spustitelného souboru.

Spíše jen pro úplnost zdůrazněme to, že jde pouze o uživatelsky volitelné a konfigurovatelné kroky, ne o zcela všechny: některé z prvků sestavení jsou "natvrdo" součástí cíle samotného a v rámci "Build Phases" je nijak ovlivnit nelze – sem patří např. vygenerování souboru "Info.plist" a jeho uložení do sestavované aplikace nebo podepisování kódu (to ovšem můžeme řídit prostřednictvím "Build Settings", s nimiž jsme se seznámili minule).

Uživatelské úpravy

Jak už jsme si řekli, Xcode udržuje obsah "Build Phases" automaticky: kdykoli přidáme do projektu (a do cíle) zdrojový text, Xcode jej automaticky vloží do fáze "Compile Sources"; přidáme-li do projektu a cíle obecný datový soubor, Xcode jej umístí do fáze "Copy Bundle Resources", a tak dále.

Někdy ale může dojít k neshodám: typicky se tak stává v případech, kdy používáme soubory s netypickými příponami, a Xcode nesprávně vyhodnotí typ takového souboru a vloží jej do špatné fáze. Pak může být vhodné tento inspektor otevřít, a fáze podle potřeby upravit ručně: obsah fází můžeme měnit pomocí tlačítek [+] a [-] v jejich levých dolních rozích, a také je možné používat službu drag&drop např. z Navigátoru.

V praxi je jen málokdy zapotřebí dělat zde rozsáhlejší úpravy; u složitějších projektů však může být zapotřebí určit závislosti cílů a někdy také přidat vlastní fáze – k tomu se ale vrátíme později.

Pořadí kroků a jejich vzájemné závislosti

Ačkoli Xcode se do jisté míry snaží dodržet pořadí, v němž jsou jednotlivé fáze sestavení v "Build Phases" uloženy – a my toto pořadí můžeme snadno měnit, stačí položky vzájemně přetáhnout pomocí myši – toto pořadí není striktní a Xcode je podle potřeby může měnit. Navíc může provádět více kroků zároveň; naopak, některé bloky representují více samostatných kroků – kupříkladu "Copy Bundle Resources" nebo "Compile Sources" ve skutečnosti nejsou dva "atomické" kroky sestavení, ale jen obecný popis devíti fází: každý z překladů a každé kopírování jednotlivého souboru jsou považovány za samostatný krok, a ty mohou být prováděny obecně v libovolném pořadí.

Pro finální rozhodnutí o pořadí jednotlivých položek určují vzájemné závislosti. Ty jsou definovány jednoduše: každý krok zahrnuje skupinu vstupních souborů a skupinu výstupních souborů, definovanou takto:

• pro každý soubor ve skupině "Compile Sources" je tento soubor sám vstupem, a odpovídající přeložený modul výstupem;

• pro skupinu "Link Binary With Libraries" jsou vstupem automaticky všechny přeložené moduly ze skupiny "Compile Sources" a knihovny z této skupiny; výstupem je spustitelný soubor v aplikaci;

• pro každý ze souborů ve skupině "Copy Bundle Resources" je vstupem prostě tento soubor (podobně, jako tomu je v "Compile Sources"). S výstupem je to trochu složitější – jak už jsme se zmínili, Xcode rozlišuje speciální soubory, jež je třeba pro vytvoření cílové podoby nějak přeložit (např. XIB -> NIB), a soubory ostatní, jež prostě zkopíruje do aplikační složky;

• příště se seznámíme ještě s jinými fázemi, v nichž lze vstupní i výstupní soubory určit přímo.

Xcode pak seřadí kroky tak, aby ty z nich, jež mají na vstupu výstup z jiného kroku byly provedeny až po tomto jiném: explicitně se o to tedy sami nemusíme starat.

Navíc Xcode automaticky před provedením každéh kroku ověří vzájemný vztah vstupních a výstupních souborů; pokud ty výstupní již existují a jsou-li novější než ty vstupní, Xcode odpovídající krok vůbec neprovede – zvláště u větších projektů se takto může ušetřit spousta času.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Tipy a Triky  

 » Rubriky  » Začínáme s  

 » Rubriky  » Software  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Zatím nebyl uložen žádný příspěvek, buďte první.

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: