Ho cercato sin dalla mattina di creare un lavoro agricolo con il tocco del cacao per inserire il mio widget contenente sé stesso e per consentire a qualsiasi app su cui sto lavorando di usarlo in futuro.
Sono riuscito a costruire il progetto ed esportare il file .framework, ma tutte le risorse non vengono mostrate ora. Tutte le mie immagini sono all'interno del catalogo delle risorse.
E sembrano essere esportati poiché il file .framework contiene il file (assets.car) al suo interno.
Attualmente sto accedendoli usando
UIImage* icon = [UIImage imageNamed:@"iconName"];
Ma restituisce sempre nulla, qualche idea?
risposte:
16 per risposta № 1Puoi fornire il struttura pacchetto durante la creazione di un'immagine. In Swift 2:
class func getMyImage() -> UIImage? {
let bundle = NSBundle(forClass: self)
return UIImage(named: "YourImageName", inBundle: bundle, compatibleWithTraitCollection: nil)
}
Swift 3:
class func getMyImage() -> UIImage? {
let bundle = Bundle(for: type(of: self))
return UIImage(named: "YourImageName", in: bundle, compatibleWith: nil)
}
Ecco un progetto demo contenente un framework con un'immagine e un'app che lo utilizza.
https://github.com/marketplacer/AssetFrameworkDemo
0 per risposta № 2
Puoi provare ad accedere alle tue immagini come:
UIImage* icon = [UIImage imageNamed:@"MyLib.framework/iconName"];
Dai un'occhiata Questo domanda sulla creazione di quadri contenenti risorse.
Anche io raccomandare usando CocoaPods anche se il tuo codice è closed source.
0 per risposta № 3
Per favore prova ad accedere all'immagine in .framework come di seguito:
[[UIImage alloc] initWithContentsOfFile:@"Test.framework/abc.png"];
Presumo che tu abbia copiato il framework e sia parte del pacchetto App
0 per risposta № 4
Ho una classe statica che aiuta il chiamante framework. Ha un metodo chiamato
+ (NSBundle*) bundelForHelper;
L'implementazione sembra così:
+ (NSBundle*) bundelForHelper{
return [NSBundle bundleForClass:self];
}
Poi nel mio controller di visualizzazione importerò l'helper e lo chiamerò in viewdidload:
UIImage *image = [UIImage imageNamed:@"MyImage"
inBundle:[MyHelper bundelForHelper]
compatibleWithTraitCollection:self.traitCollection];