質問

私は最近、3.0にベースSDKを設定するために私を必要と私のiPhoneのプロジェクトに静的ライブラリ(mobclix)を追加しました。このライブラリは、2.2と互換性があることを主張し、それが本当だように、これまでそれが見えています。私は2.2に、プロジェクトのデプロイメント・ターゲットを設定します。そこに問題はありません。

さて、私もこの同じプロジェクト内のlibxml2を使用しています。明らかに、OS 3.0でlibxml2.2.dylibはOS 2.X(それぞれバージョン10及び9)により新しいです。しかし、libxml2のを使用しています私のコードは、OS 2.xで含まれ、既にlibxml2のバージョンと互換性でした私は3.0にベースSDKを設定するために必要なので、「互換バージョン」/最小バージョン要件/依存関係が自動的にlibxml2のの新しいバージョンに設定されています。私はOS 2でアプリケーションを実行しようとすると、私は(明らかに)このランタイムエラーを取得します:

  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

これはどこかにバージョン要件を上書きすることは可能ですか? または、この問題を解決するために他のアイデア?

役に立ちましたか?

解決

の互換バージョンは、ビルド時に、現在のSDKのdylibに埋め込まれたバージョンに応じて設定されます。私はこれを変更または無効にする方法を発見していない。

しかし、Xcodeでターゲットに支店「ライブラリとバイナリとのリンク」の下に「弱い」dylibをリンクするためのオプションがあります。これはdylib(ランタイム)をロードする時にバージョンチェックをスキップします。それだけで、既存の関数への呼び出しを行うために、あなたの責任です。存在しない関数への呼び出しを行うと、アプリケーションがクラッシュしてしまいます。

他のヒント

どうやらのlibxmlとの互換性を破ったSDK 3.0での変更がありました。 Appleはここでそれについて投稿しています:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top