/ / Zabráňte vytváraniu aplikácie s SDK, ktoré majú nižší cieľ nasadenia - ios, xcode

Zabráňte budovaniu aplikácie pomocou SDK s nižším nasadzovacím cieľom - ios, xcode

Vytvoril som statickú knižnicu, ktorá má cieľ nasadenia systému iOS 10.2. Knižnica je integrovaná v aplikácii, ktorá má cieľ nasadenia 9,0.

Aplikácia sa nejako zostavuje a funguje dobre v systéme iOS 9.0. Prečo? Mala by sa aplikácia vytvárať, aj keď je knižnica zacielená iba na iOS 10.2 a vyšší?

odpovede:

6 pre odpoveď č. 1

Áno, Vaša zostava sa zostaví bez chyby, ak je súbor SDK vašej aplikácie rovnaký alebo vyšší ako cieľ nasadenia statickej knižnice.

Statická knižnica vnútorne je kopa vyhovujúcich objektov.po kompilácii vašej aplikácie v čase prepojenia skontroluje dostupnosť symbolov použitých v statickej knižnici. a ak je základná sada SDK vášho projektu rovnaká alebo vyššia ako cieľ nasadenia statickej knižnice, váš projekt nájde definíciu všetkých symbolov použitých v knižnici -Tak Žiadna chyba kompilátora.

Počas behu sa môže zobraziť chyba, ak používate aplikáciu v zariadení s verziou ios nižšou ako je cieľ nasadenia statickej knižnice a použili ste symboly, ktoré v tejto verzii nie sú k dispozícii.

Ak váš kód / knižnica používa symbol:

  1. Nie je definované v základnej súprave SDK hlavného projektu (napríklad a symbol z novšieho OS v knižnici), zobrazí sa chyba pri kompilácii.
  2. Definované v základnej súprave SDK, ale označené ako zastarané, sa zobrazí upozornenie za kompiláciu.
  3. Definovaný v cieli nasadenia, váš kód sa spája a zostavuje normálne. V čase spustenia:

    • V systéme, na ktorom je operačný systém starší ako cieľ nasadenia, je váš načítanie kódu sa môže zlyhať, ak v danom operačnom systéme používate symboly, ktoré nie sú k dispozícii.
    • V systéme s OS rovným alebo neskorším ako nasadenie cieľ, váš kód má nulové ukazovatele na symboly, ktoré v tom nie sú k dispozícii OS.

zdroj: developer.apple.com

tu je Obrázok z vyššie uvedeného odkazu, ktorý vysvetľuje, aké symboly môžete použiť v závislosti od cieľa nasadenia a základnej sady SDK Obrázok z vyššie uvedeného odkazu s vysvetlením, aké symboly môžete použiť v závislosti od cieľa nasadenia a základného súboru sdk.