2

アプリケーションでMKStoreKitを使用しています。ここでRestKitも追加したいのですが、RestKitを追加した後、XCodeで次のエラーメッセージが表示されます。

Duplicate symbol _jk_collectionClassLoadTimeInitialization in [...]/libRestKitJSONParserJSONKit.a(JSONKit.o) and [...]/Objects-normal/armv7/JSONKit.o for architecture armv7

それについて私ができることはありますか?

どうもありがとう!

編集:MKStoreKitからJSONKitを削除すると、次のエラーが発生します。

ここに画像の説明を入力してください

4

2 に答える 2

9

このエラーは、MKStoreKitにバンドルされているJSONKitフレームワークと、`RestKitがJSONKitも取り込むという事実との衝突が原因で発生します。

最も簡単な解決策はJSONKit.m、プロジェクト(MKStoreKitに付属しているもの)からファイルを削除し、JSONKit.hヘッダーを保持することです。プロジェクトを、RestKitフレームワークで提供されるJSONKitにリンクしてください。これにより、プロジェクトはJSONKitを「見る」ことができ、リンカーはそれをバンドルされたライブラリにリンクします。

于 2011-12-02T14:55:46.833 に答える
2

DeezerとAdFonic静的ライブラリでも同じ問題が発生しました。しかし、両方のライブラリはクローズドソースです。この場合の解決策は、ライブラリからシンボルを削除することです。

Nathan de Vriesは、ここにすばらしいチュートリアルを投稿しています。

http://atnan.com/blog/2012/01/12/avoiding-duplicate-symbol-errors-during-linking-by-removing-classes-from-static-libraries/

于 2012-08-01T08:59:58.670 に答える