ios objective-c static-linking dynamic-linking

¿iOS es un framework estático o dinámico?



objective-c static-linking (1)

Esto puede sonar como una pregunta tonta, pero si tiene un archivo thirdParty.framework, ¿puede saber si es estático o dinámico? Quiero decir, ¿se ven diferentes si miras dentro?


Puede ser cualquiera.

Sin embargo, solo iOS8 + permitirá marcos dinámicos en el paquete de aplicaciones.

La forma de averiguarlo es buscar en .framework y usar el comando de file en el archivo principal:

$ cd iOS/Crashlytics.framework $ ls -l total 9984 -rwxr-xr-x 1 andy staff 4710656 11 Sep 17:11 Crashlytics drwxr-xr-x 8 andy staff 272 11 Sep 17:11 Headers -rw-r--r-- 1 andy staff 1553 11 Sep 17:11 Info.plist drwxr-xr-x 3 andy staff 102 11 Sep 17:11 Modules -rwxr-xr-x 1 andy staff 146164 11 Sep 17:11 run -rwxr-xr-x 1 andy staff 241688 11 Sep 17:11 submit $ file Crashlytics Crashlytics: Mach-O universal binary with 5 architectures Crashlytics (for architecture armv7): current ar archive random library Crashlytics (for architecture armv7s): current ar archive random library Crashlytics (for architecture i386): current ar archive random library Crashlytics (for architecture x86_64): current ar archive random library Crashlytics (for architecture arm64): current ar archive random library

Donde ar archive significa "biblioteca estática".

Alternativamente, un marco "dinámico" se verá así y declarará explícitamente que está enlazado dinámicamente.

$ cd /Library/Frameworks/iTunesLibrary.framework/ $ ls -l total 40 lrwxr-xr-x 1 root wheel 24 10 Sep 17:38 Headers -> Versions/Current/Headers lrwxr-xr-x 1 root wheel 24 10 Sep 17:38 Modules -> Versions/Current/Modules lrwxr-xr-x 1 root wheel 26 10 Sep 17:38 Resources -> Versions/Current/Resources drwxr-xr-x 4 root wheel 136 10 Sep 17:41 Versions lrwxr-xr-x 1 root wheel 22 10 Sep 17:38 XPCServices -> Versions/A/XPCServices lrwxr-xr-x 1 root wheel 30 10 Sep 17:38 iTunesLibrary -> Versions/Current/iTunesLibrary $ file Versions/Current/iTunesLibrary Versions/Current/iTunesLibrary: Mach-O universal binary with 2 architectures Versions/Current/iTunesLibrary (for architecture i386): Mach-O dynamically linked shared library i386 Versions/Current/iTunesLibrary (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64