¿IOS 8 apoyo a la vinculación dinámica?

Hasta iOS7, Apple no apoyar la vinculación dinámica debido a preocupaciones de seguridad. La reutilización de código entre los desarrolladores generalmente invocado bibliotecas estáticas, las cuales fueron construidas como parte del archivo ejecutable de la aplicación.

La introducción de extensiones en iOS8 parece cambiar esto un poco, porque las extensiones son independientes de los ejecutables. Compartir código entre una extensión y que contiene su aplicación se realiza a través de un marco. Apple dice en sus notas de la versión:

Marcos para iOS. iOS ahora los desarrolladores pueden crear dinámica marcos.
Los marcos son una colección de código y recursos para encapsular
la funcionalidad que es valioso a través de múltiples proyectos. Marcos
funciona perfectamente con extensiones, compartir lógica que puede ser utilizado por ambos
la aplicación principal, y el paquete de extensiones.

El énfasis es mío.

Fuente: https://developer.apple.com/library/content/documentation/Xcode/Conceptual/WhatsNewXcode-Archive/Articles/xcode_6_0.html#//apple_ref/doc/uid/TP40014509-SW14

Además, en la extensión dev guía, que explique que usted puede compartir código entre una extensión y el contenido de la aplicación a través de un «marco incrustado».

Fuente: https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW1

Mi pregunta es – ¿qué es un integrado marco, ¿cómo se diferencia de un marco dinámico, y vamos a ver realmente la adecuada vinculación dinámica en iOS8? Toda la documentación que he leído parece ambigua acerca de esto.

  • No se permite el uso incrustado marcos o marcos, en general, de todos modos??? Tiene múltiples aplicaciones en la app store que utilizar embedded marco y, a continuación, sólo la marca dio una palmada en la parte superior de la aplicación real. O me acaba de missunderstood lo que estaba diciendo?
  • El uso de marcos estaba habilitado, pero todos ellos eran estáticas, es decir, que fueron construidos como parte del archivo ejecutable. Ahora que tenemos las extensiones, si siempre hacemos lo mismo, la aplicación ejecutable y extensión ejecutable estaría duplicando el marco de código (asumiendo que ambos enlace el marco). Esto es extraño para mí, así que me estoy preguntando si Apple ha cambiado y nos ha permitido hacer de enlace de forma dinámica (es decir, vincular un archivo ejecutable marco en tiempo de ejecución). También, ellos tienen las palabras «marco dinámico» en ese documento.
  • OK creo que entiendo lo que quieres decir, yo tenía que envolver por el cerebro antiguo, un par de veces para entender, pero yo creo que lo tengo pero creo que no tengo una respuesta para usted, lo siento.
InformationsquelleAutor Slavo | 2014-08-01

3 Kommentare

  1. 13

    «Incrustado» y «Dinámico» de marcos no se refieren a un mismo aspecto de los marcos. Ellos no son los opuestos el uno del otro. En primer lugar, vamos a definir lo que es un marco de trabajo: en Apple lingo, un marco de referencia para algunos el código compilado de + los encabezados públicos de dicho código.

    • Ahora un dinámica framework es un marco de trabajo cuyo código fue construido como una librería dinámica. Es lo contrario de una «estática» marco, donde el código sería construido como una biblioteca estática. En caso de que usted se está preguntando, Wikipedia ha una muy buena explicación de ¿cuál es la diferencia entre una estática y una dinámica de la biblioteca.

    • Y, por último, un incrustado framework es un marco de trabajo que se empaqueta dentro de una aplicación, en lugar de ser instalado en el sistema, en «/System/Library/Frameworks», por ejemplo.

    • Aunque el texto puede ser diferente, no es este el mismo concepto? Todos los marcos deben estar relacionadas con el código de la aplicación. El resultado es un único archivo ejecutable, así que estás diciendo que todos los marcos están incrustados marcos. Entonces esto no contesta a mi pregunta. Hay no incrustadas enlazados dinámicamente marcos en iOS8?
    • Usted puede distribuir un marco estático, aparte de una aplicación. Creo que «Google Analytics», por ejemplo. Hay no incrustadas enlazados dinámicamente marcos en iOS8?: Por supuesto: todo el sistema de marcos (Fundación, UIKit, etc…)
  2. 0

    Incrustado marco es simplemente uno que se incluyen en el paquete de la aplicación, en lugar de un marco global que se instala en el directorio del sistema.

    • OK, pero en ese caso, es todavía un marco estático. ¿Por qué Apple el uso de la palabra «dinámica» en las notas de la versión?
    • Lo siento, sí, es dinámico.
  3. -2

    Dinámica Marcos no significa enlazados dinámicamente marco. Aplicaciones todavía funcionan en un entorno de recinto de seguridad. No es como su costumbre de marcos va a ser instalado con el sistema operativo iOS. Cada uno de tus aplicaciones que utiliza el marco de referencia común que usted ha desarrollado va a ser copiado dentro de todas las aplicaciones del paquete.

    Usted puede ver esto por ti mismo. Vaya a su Xcode Datos Derivados de directorio y dentro de la aplicación, sus datos, usted encontrará todos los incrustado marcos de copiado.

    La única cosa nueva con la creación de Marcos con iOS 8 en comparación con las bibliotecas estáticas es que el público los archivos de cabecera y los activos se combinan en el Marco. Si usted ha estado haciendo este tipo de cosas con las anteriores versiones de Xcode, podrás recordar el dolor con el suministro de los encabezados públicos y, a continuación, agregar la ruta de búsqueda dentro de Xcode configuración y activos tuvimos que pasar en un paquete separado.

    Este único inconveniente de la utilización de los Marcos que yo veo es que ahora no podemos simplemente usar lipo para generar una grasa biblioteca estática para todo tipo de arquitecturas.

    OMI Apple está usando la palabra «dinámico» sugerir «independiente».

    Reloj WWDC2014 – la Construcción de una Moderna Marcos para obtener más detalles.

    • Dinámica de marcos en realidad significa, precisamente, dinámicamente vinculado marco, en iOS/OS X mundo. Generar sólo una muestra de iOS marco y hacer «archivo MyLib.marco/MyLib» y ver cómo es un Mach-O enlazados dinámicamente de la biblioteca compartida.
    • Así que estás diciendo que los marcos escribimos va a estar disponible para todos los demás de forma dinámica?
    • Nope, iOS no permite eso. El sistema operativo no va a dejar que la carga de una biblioteca dinámica desde fuera de la aplicación de la caja de arena. Sistema de marcos en el interior de la caja de arena, pero los marcos de otras aplicaciones no lo son. Marcos se introduded en iOS 8 para que puedas compartir código entre la aplicación principal y extensiones. Ambos pueden cargar marcos desde dentro de la aplicación del contenedor. Otras aplicaciones no pueden.
    • OK @Ecco, creo que ahora entiendo. En teoría, aquellos que están vinculados dinámicamente, pero el OS mecanismo de seguridad (sandboxing) no se permitirá el enlace de ninguna marcos fuera de la caja de arena. Podrían estos tiene el potencial de ser utilizado en dispositivos con jailbreak?

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea