Domanda

Recentemente ho aggiunto una libreria statica (Mobclix) al mio progetto iPhone, che mi ha richiesto di impostare l'SDK di base a 3,0. Questa libreria è affermato di essere compatibile con 2.2 e finora sembra che sia vero. Ho impostato distribuzione di destinazione del progetto per 2.2. Nessun problema.

Ora, Sono anche utilizzando libxml2 in questo stesso progetto. A quanto pare, il libxml2.2.dylib in OS 3.0 è più recente in OS 2.X (versione 10 e 9 rispettivamente). Tuttavia, il mio codice che usa libxml2, era già compatibile con la versione libxml2 inclusa con OS 2.X. Da quando ho bisogno di impostare l'SDK Base a 3,0, la versione "compatibilità" / versione minima esigenza / dipendenza viene impostato automaticamente la versione più recente di libxml2. Quando si tenta di eseguire l'applicazione in OS 2, ottengo questo errore di runtime (ovviamente):

  Dyld Error Message:
  Library not loaded: /usr/lib/libxml2.2.dylib
  Referenced from: /Users/Martijn/Library/Application Support/iPhone Simulator/User/Applications/4D5456DE-F297-4DF4-ACA6-DA8BBBBBA914/Luisterpaal.app/Luisterpaal
  Reason: Incompatible library version: Luisterpaal requires version 10.0.0 or later, but libxml2.2.dylib provides version 9.0.0

E 'possibile ignorare il requisito di versione da qualche parte? O altre idee per risolvere questo problema?

È stato utile?

Soluzione

La versione di compatibilità è impostato secondo la versione inclusa nella dylib del SDK corrente durante la compilazione. Non ho trovato un modo per cambiare o ignorare questo.

Tuttavia, nel target in Xcode sotto "Collegamento con binari con le librerie" ramo v'è la possibilità di collegare un dylib "debolmente". Questo salta controllo di versione al momento del caricamento della dylib (runtime). E 'vostra responsabilità poi a fare solo le chiamate alle funzioni esistenti. Effettuare chiamate a funzioni inesistenti andrà in crash l'applicazione.

Altri suggerimenti

A quanto pare c'è stato un cambiamento con SDK 3.0 che ha rotto la compatibilità con libxml. Apple ha pubblicato su di esso qui:

http://developer.apple.com/iphone/library /qa/qa2009/qa1659.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top