¿Cómo transferir files de resources con la biblioteca estática (Cómo ajustar los resources en un package)?

Estoy creando una Static Library para aplicaciones iOS . Casi lo complete, pero hay un problema con los resources.

My Static Library usa muchas imágenes y files de sonido. ¿Cómo puedo transferirlo con mi biblioteca estática?

Sé que podemos envolverlo en un package y darle el file .a . Pero no sé cómo ajustar imágenes y files de sonido en un file Bundle.

Lo que hice:

  • Busqué mucho, pero no pude encontrar ningún enlace útil.
  • Obtuve una reference Conceptual CFBundles , pero no encontré ninguna solución para mi problema.
  • Revisé las templates de files disponibles para XCode, pero no vi ningún tipo de package que no sea el package de Settings Bundle.

Existen varias buenas razones para crear una aplicación con varios packages y varias forms diferentes de hacerlo. Para mi experiencia, la mejor manera es abrir Xcode y crear un nuevo proyecto de package:

  1. Seleccione: Archivo -> Nuevo proyecto … -> Grupo Mac OSX (!) -> Framework & Library -> Bundle. Agregue sus files de resources al proyecto.
  2. Genere el package mientras crea otras aplicaciones de iPhone.
  3. Puede agregar este proyecto a su proyecto de biblioteca estática y rebuildlo todo el time que cambie la biblioteca. Debes saber que el package en sí no estará vinculado a tu file de biblioteca.
  4. En los proyectos de su aplicación, agregue el file .bundle a su proyecto como un file de resources ordinario (Agregar -> Archivos existentes … -> busque y select el file .bundle incorporado anteriormente. No lo copie).

Ejemplo:

 // Static library code: #define MYBUNDLE_NAME @"MyResources.bundle" #define MYBUNDLE_IDENTIFIER @"eu.oaktree-ce.MyResources" #define MYBUNDLE_PATH [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: MYBUNDLE_NAME] #define MYBUNDLE [NSBundle bundleWithPath: MYBUNDLE_PATH] // Get an image file from your "static library" bundle: - (NSString *) getMyBundlePathFor: (NSString *) filename { NSBundle *libBundle = MYBUNDLE; if( libBundle && filename ){ return [[libBundle resourcePath] stringByAppendingPathComponent: filename]; } return nil; } // ..... // Get an image file named info.png from the custom bundle UIImage *imageFromMyBundle = [UIImage imageWithContentsOfFile: [self getMyBundlePathFor: @"info.png"] ]; 

Para get más ayuda, puede consultar estos buenos artículos.

  1. Biblioteca de iOS con resources

  2. Conjuntos de resources

Espero que te ayude.