2009-07-18 13 views
8

Ho categorie nella mia libreria statica. Qualsiasi sviluppatore di applicazioni dovrebbe impostare -ObjC flag su "Other Linker Flags" per usare correttamente la mia libreria statica. Funziona perfettamente con il dispositivo iPhone/iPhone Simulator 2.xe iPhone Simulator 3.0. Ma si blocca per il dispositivo iPhone 3.0. Come scritto in this article è un nuovo bug del linker. Suggeriscono di usare un altro flag linker: -all_load. Ma quando aggiungo questo flag, anche build fallisce, perché ci sono simboli duplicati.Categorie nella libreria statica per dispositivo iPhone 3.0

Come utilizzare le categorie nelle librerie statiche per il dispositivo iPhone 3.0? Eventuali suggerimenti?

+0

Ho lo stesso problema, l'hai risolto? – thierryb

+0

Nel linker più recente sembra che questo sia stato corretto e -all_load non è più necessario. – drekka

risposta

10

ran into the same problem (in 3,0, -ObjC non è più disponibile in categorie) all'interno dello Core Plot framework. Tutto quello che posso dire è che per noi, siamo stati in grado di aggiungere l'opzione -all_load agli altri linker flag all'interno dell'applicazione di destinazione e questo ha eliminato gli errori di runtime. Non abbiamo visto alcun avviso per i simboli duplicati.

Ho archiviato un bug report per il comportamento del linker, come sono sicuro che altri hanno.

0

Quando aggiungi -all_load agli altri flag del linker, assicurati che tutti i framework utilizzati dalla libreria siano collegati all'app di destinazione. Altrimenti, non riuscirà a compilare. Nel mio caso, ho avuto una categoria per MKMapView e non ho associato MapKit Framework alla mia app di destinazione, quindi la classe a cui appartiene la categoria non è stata trovata in fase di costruzione.

0

Mi sono imbattuto nello stesso problema di "simboli duplicati". Senza il flag -all_load, dovevamo includere anche tutte le librerie collegate alla nostra libreria nella linea di collegamento dell'app. La rimozione di questi dalla linea di collegamento dell'app ha risolto il problema.

1

È un errore causato dal tentativo di correggere un altro bug con un hack. La correzione -all_load per il bug di categoria è un hack totale.

Vedere here per ulteriori informazioni.

Problemi correlati