Daniel Kennett - Eliminarea arhitecturilor nedorite din bibliotecile dinamice în Xcode

Dezvoltator de cacao, constructor Lego, model proprietar de cale ferată.

iKenndac pentru majoritatea serviciilor pe care ați dori să le menționați.

8 februarie 2015

Eliminarea arhitecturilor nedorite din bibliotecile dinamice în Xcode

De când a fost anunțat iOS 8, dezvoltatorii au putut profita de avantajele bibliotecilor dinamice pentru dezvoltarea iOS.

Pentru dezvoltarea generală, este minunat să aveți o singură bibliotecă dinamică pentru toate arhitecturile necesare, astfel încât să puteți rula pe toate dispozitivele și pe iOS Simulator fără a schimba nimic.

În proiectul meu și diferitele sale extensii, folosesc Reactive Cocoa și îl am în proiectul meu ca o bibliotecă dinamică precompilată cu felii i386 și x86_64 pentru Simulator și armv7 și arm64 pentru dispozitive.

Cu toate acestea, există un dezavantaj al acestei abordări - deoarece acestea sunt conectate la runtime, atunci când o bibliotecă dinamică este compilată separat de aplicația în care ajunge, este imposibil să se spună ce arhitecți vor fi de fapt necesari. Prin urmare, Xcode va copia doar totul în pachetul de aplicații la momentul compilării. În afară de spațiul pe disc pierdut, în teorie nu există nici un dezavantaj real. Cu toate acestea, în practică, iTunes Connect nu-i place să adăugăm felii binare neutilizate:

kennett

Deci, cum lucrăm în această privință?

Am putea folosi în schimb biblioteci statice. Cu toate acestea, cu mai multe ținte și extensii în proiectul meu, pare o prostie să-mi umfl toate executabilele cu copii ale acelorași biblioteci.