Domanda

fino a quando IOS7, Apple non ha supportato il collegamento dinamico a causa di problemi di sicurezza. Il riutilizzo del codice tra gli sviluppatori di solito si basava sulle librerie statiche, che sono state costruite come parte dell'eseguibile dell'app.

L'introduzione di estensioni in IOS8 sembra modificare questo un po ', perché le estensioni sono eseguibili separati. La condivisione del codice tra un'estensione e la sua app contenente vengono eseguite tramite un framework. Apple sta dicendo questo nelle loro note di rilascio:

.

Frameworks per iOS. Gli sviluppatori iOS possono ora creare quadri dinamici . I framework sono una raccolta di codice e risorse da incapsulare funzionalità che è preziosa su più progetti. Frameworks. Lavora perfettamente con estensioni, condividendo la logica che può essere utilizzata da entrambi L'applicazione principale e le estensioni in bundle.

Enfasi è mio.

Fonte: https://developer.apple.com/Library/Content/Documentation/Xcode/conceptual/WhatsnewxCode-Archive/articles/Xcode_6_0.html#//apple_ref/doc/uid/TP40014509-SW14

Inoltre, nella Guida all'estensione Dev, spiegano che è possibile condividere il codice tra un'estensione e l'app contenente tramite un "quadro incorporato".

Fonte: https://developer.apple.com/library/content/documentation/general/conceptual/extensitibilitypg/extensionscenarios.html#//apple_ref/doc/uid/tp40014214-ch21-sw1

La mia domanda è - Cos'è un framework incorporato, come differisce da un quadro dinamico, e vedremo veramente il corretto collegamento dinamico in IOS8? Tutta la documentazione che ho letto sembra ambiguo su questo.

È stato utile?

Soluzione

"I quadri" incorporati "e" dinamici "non si riferiscono allo stesso aspetto dei quadri.Non sono l'opposto l'uno dell'altro.Innanzitutto, definiamo ciò che è un quadro: in Apple Lingo, un framework si riferisce ad alcuni codice compilato + le intestazioni pubbliche di detto codice.

    .
  • Ora A Dynamic Framework è un framework il cui codice è stato costruito come una biblioteca dinamica.È il contrario di un quadro "statico", in cui il codice sarebbe stato costruito come una biblioteca statica.Nel caso in cui ti chiedi, Wikipedia ha una spiegazione molto bella di qual è la differenza tra una biblioteca statica e dinamica.

  • E infine, un framework incorporato è un framework che è confezionato all'interno di un'app, al contrario di essere installato a livello di sistema, in "/ sistema / libreria / frameworks" per esempio.

Altri suggerimenti

Un framework incorporato è semplicemente uno che è incluso nel pacchetto di app, piuttosto che un framework globale installato nella directory di sistema.

framework dinamico non significa framework collegato dinamicamente . Le app ancora funzionano in un ambiente di sandbox. Non è come se i tuoi framework personalizzati saranno installati con iOS. Ognuna delle tue app che utilizza il quadro comune che hai sviluppato sarà copiato all'interno di ogni fascio di app.

Puoi vederlo per te. Vai alla directory dati derivata da Xcode e all'interno dei dati dell'app, troverai tutti i quadri incorporati copiati.

L'unica nuova cosa con la creazione di framework con iOS 8 rispetto alle librerie statiche è che i file di intestazione pubblica e le risorse vengono raggruppati all'interno del quadro. Se hai fatto questo tipo di cose con le versioni precedenti di XCode, ricorderai il dolore con la fornitura di intestazioni pubbliche e aggiungendo il percorso di ricerca all'interno delle impostazioni di Xcode e per le risorse che abbiamo dovuto passare in un pacchetto separato. Questo solo lato negativo dell'utilizzo di strutture che vedo è che ora non possiamo semplicemente usare lipo per generare una libreria statica grassa per tutti i tipi di architetture.

imo Apple sta usando la parola "dinamica" per suggerire "indipendente".

Guarda WWDC2014 - Building Modern Frameworks per maggiori dettagli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top