/ / Le risorse del framework tocco di cacao non sono visibili in App Project: ios, cacao-touch, xcode6

Le risorse del cacao touch non sono visibili in App Project: ios, cacao-touch, xcode6

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 № 1

Puoi 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];