2012-11-02 6 views
11

Ho un progetto che ho bisogno di importare in un altro progetto come framework, proprio come importiamo il framework Coredata, Quartzcore ecc .. Come raggiungere questo obiettivo? Come si compila il mio progetto in una libreria o framework che può essere importato in altri progetti? Si prega di spiegare i passaggi.Come convertire un progetto Xcode in una libreria o un framework statico?

Grazie in anticipo.

risposta

4

https://github.com/jverkoey/iOS-Framework prova questo collegamento per la creazione di framework e bundle di risorse. Avvolgi le immagini, le xib e altre risorse che hai utilizzato nel tuo progetto in un bunker e copia le tue classi nel tuo progetto di libreria Cocoa Touch Static.

4

Se vuoi compilare un quadro 'standard', come UIKit.framework, provate questo Universal Framework iPhone iOS

altro

  1. Creare un nuovo progetto denominato 'TestPlugin' e scegliere il tipo di "Cocoa Touch libreria statica" . Qui avrai un target "TestPlugin.a".
  2. Aggiungi un nuovo obiettivo. Nell'angolo sinistro dell'impostazione del progetto, il nome è: 'Aggiungi obiettivo'. Scegli "Pacchetto" in "Quadro e libreria" in "OS X". Questo è il tuo secondo obiettivo chiamato "TestPluginBundle.bundle".
  3. Nell'esposizione "Crea frasi" del target di TestPlugin.a, aggiungere una nuova "Denaro target". Questo genererà prima il file .bundle e poi il file .a.
  4. Copia e aggiungi tutto il file del progetto 'Originale' (escludi il file main.m e il file .xcodeproj) nel progetto TestPlugin.
  5. In "Build Phases" di TestPluginBundle, aggiungi tutto il file .xib .png (forse .jpg) in "Compile Sources". Aggiungi la risorsa spaziale (come .wav, .gif e .html) a "Copia risorse del pacchetto".
  6. Sostituisci tutto il codice che carica la risorsa dal bundle principale per caricare la risorsa da TestPluginBundle. Forse si desidera aggiungere una categoria per UIImage perché si desidera utilizzare imageNamed: in modo da poter utilizzare [UIImage testPluginImageNamed:@"small.png"]. È facile sostituire il progetto e aggiungere il relativo file di intestazione. Prendere il file .xib Ad esempio:

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
    { 
        //self = [super initWithNibName:nibNameOrNil bundle:[NSBundle mainBundle]]; 
        // you need to define a method to get the bundle 'TestPluginBundle.bundle', here I used '[TestPlugin TestPluginBundle]' 
        self = [super initWithNibName:nibNameOrNil bundle:[TestPlugin TestPluginBundle]]; 
        ... 
    } 
    
  7. Dopo questo aggiungere il file .a e il file .bundle ad un altro progetto. Nell'altro progetto è necessario aggiungere nuovamente il framework correlato.

Ho utilizzato con successo questo metodo per il mio lavoro.

+0

Potresti spiegare come costruire finalmente il framework dopo aver eseguito tutti i passaggi precedenti? – booleanBoy

+0

Cosa intendi per "quadro"? – sunkehappy

+0

intendevo quello che generalmente includiamo nei progetti xcode ... frameworks predefiniti come coredata, quartzcore ecc. Come si costruisce un simile framework? – booleanBoy

Problemi correlati