Site icon Ryadel

imageNamed non valido (e altri problemi con i resource files) dopo la creazione di un CocoaPod

imageNamed non valido (e altri problemi con i resource files) dopo la creazione di un CocoaPod

Qualche giorno fa ho scritto un articolo per illustrare l'integrazione della mia libreria DownPicker su CocoaPods. Come diretta conseguenza del refactoring effettuato per rendere il codice compatibile con i requirements del dependency manager più usato dagli sviluppatori XCode,  alcuni utilizzatori della libreria mi hanno immediatamente fatto notare che la nuova versione, se installata tramite CocoaPods, non visualizzava più le immagini integrate, nonostante fossero presenti nelle directory /Assets/ , quest'ultima regolarmente inclusa nelle wildcard presenti nel percorso indicato come resource_bundle nel file .podspec relativo al progetto.

Il problema era legato al fatto che il codice non conteneva alcun riferimento al bundle in questione, continuando a cercare l'immagine nella cartella principale del progetto: una pratica che funziona benissimo per un componente esterno inserito manualmente all'interno di un progetto XCode, ma sostanzialmente inadatta per un CocoaPod.

La soluzione è stata molto semplice, è bastato aggiungere un riferimento al bundle relativo al progetto sfruttando un overload aggiuntivo del metodo imageNamed:

Inutile dire che la medesima soluzione si adatta a qualsiasi altro tipo di asset o resource file non trovato. Nel caso in cui siate alle prese con un problema simile, adesso sapete come fare.

Felice sviluppo!

 

Exit mobile version