2009-08-19 10 views

Respuesta

17

He creado plantillas para Xcode 4 que te permiten construir marcos universales de iOS (que funcionan tanto en el dispositivo como en el simulador).

Una vez que las plantillas están instaladas, simplemente selecciona "Marco de iOS estático" cuando crea un nuevo proyecto y hace el resto. También funciona con pruebas unitarias.

https://github.com/kstenerud/iOS-Universal-Framework

+0

Gracias por tal solución, me ahorró algo de tiempo. –

+0

¡También he usado esta plantilla y funciona muy bien! – MortenHN

+0

No es compatible con xcode4.5. – user501836

6

Los marcos en Objective C son típicamente solo código C/ObjC y un grupo de clases, nada increíblemente especial. Como tal, puede crear uno propio si lo desea, y luego simplemente incluir eso en su proyecto cuando lo construya. Al iPhone no le importa la diferencia, solo sabe poner todo ese código en su aplicación, junto con todo lo demás.

Eche un vistazo a Framework Programming Guide en el sitio web de Apple. Te hará comenzar. Esencialmente, lo que harás es crear un proyecto de Framework en XCode y luego ir desde allí.

En cuanto a "proteger" su marco, supongo que quiere decir que su código es ilegible. No estoy seguro de cómo y cómo puede hacer esto, pero tal vez la guía de Apple diga algo al respecto.

2

Puede hacer que una biblioteca estática esté disponible como binaria (es decir, una "protección rudimentaria") para terceros, pero no una dinámica, ya que la política de Apple App Store impide la vinculación dinámica.

14

Puede crear una biblioteca estática. Hay una opción en el selector de proyectos XCode para hacer esto. Deberá distribuir el archivo compilado de la biblioteca estática y los archivos de encabezado a los usuarios de su biblioteca. Sus archivos de implementación reales (.m) no necesitan ser distribuidos.

GHUnit hace un buen trabajo en esto - empaqueta las librerías tanto para el simulador como para el dispositivo - así que recomiendo mirar este proyecto. (También recomiendo usar esta biblioteca para pruebas unitarias :-)

+2

Como otro ejemplo, la variante Cocoa Touch de Core Plot se compila como una biblioteca estática: http://code.google.com/p/core-plot/ –

0

Si va a hacerlo, en mi opinión, JSON.framework es un excelente ejemplo a seguir. Ocultar/ofuscar el código fuente es una historia diferente, y una pregunta completamente diferente,

-2

Es poco probable que esto funcione de la manera que desee porque los otros desarrolladores no podrán usar su marco. This StackOverflow Question explica por qué.

+1

Está asumiendo que una infraestructura implica automáticamente el uso de una biblioteca dinámica que es incorrecta. Puede construir un marco alrededor de una biblioteca estática (universal), por lo tanto, realmente funciona perfectamente bien. – Till

1

Tome un vistazo a un ejemplo práctico para las bibliotecas estáticas dadas en this site

3

Sí que se pueden crear marcos para su uso con Cocoa Touch.

Sin embargo, existen estas salvedades:

  1. tiene que ser un libary enlazado estáticamente, sin carga dinámica (dyld) para nosotros
  2. debe ser una biblioteca combinada (lipo) para i386 (simulador), ARM6 y arm7
  3. necesita hackear un proyecto de paquete en un marco
  4. debe incrustar (pequeñas y pocas) imágenes en la biblioteca para que el desarrollador no tenga que perder el tiempo con recursos, simplemente arrastra proyecto
  5. ... o si tiene imágenes grandes y muchas compilar un paquete con estos

Tengo guías para estas cosas en mi sitio.

1 + 2 = http://www.drobnik.com/touch/2010/04/universal-static-libraries/

Los otros enlaces que hay que Google porque este sitio no me deja publicar más de una URL.

+1

Te permite publicar más de una URL. – Brandon

+0

con swift no podemos crear una biblioteca estática, la única sería crear un framework.so framework es básicamente una colección de bibliotecas estáticas y dinámicas, pero la biblioteca dinámica no debería usarse ya que el enlace dinámico se opone a las reglas de apple. en el marco tiene que contener una biblioteca estática es bastante contradictorio. –

0

Al crear un nuevo proyecto, vaya a iOS> Marco & Biblioteca> Cocoa Touch marco, es tan simple como eso. Cuando se compila con éxito, se creará .framework en la carpeta Products en XCode. Haga clic derecho para mostrar en Finder y podrá encontrar el resultado.

Cuestiones relacionadas