Se vuoi compilare un quadro 'standard', come UIKit.framework, provate questo Universal Framework iPhone iOS
altro
- Creare un nuovo progetto denominato 'TestPlugin' e scegliere il tipo di "Cocoa Touch libreria statica" . Qui avrai un target "TestPlugin.a".
- 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".
- 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.
- Copia e aggiungi tutto il file del progetto 'Originale' (escludi il file main.m e il file .xcodeproj) nel progetto TestPlugin.
- 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".
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]];
...
}
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.
Potresti spiegare come costruire finalmente il framework dopo aver eseguito tutti i passaggi precedenti? – booleanBoy
Cosa intendi per "quadro"? – sunkehappy
intendevo quello che generalmente includiamo nei progetti xcode ... frameworks predefiniti come coredata, quartzcore ecc. Come si costruisce un simile framework? – booleanBoy