1

バックエンドと通信するために重要な役割で AFNetworking を使用する静的ライブラリを作成しました。テスト中はすべてうまく機能しますが、再度インポートしてテスト アプリケーションで AFNetworking を使用しようとすると、シンボルの重複エラーが大量に発生します。

duplicate symbol _OBJC_CLASS_$_AFURLSessionManager in:
    (AFURLSessionManager.o)
    i386/AFURLSessionManager.o
duplicate symbol _OBJC_METACLASS_$_AFURLSessionManager in:

(AFURLSessionManager.o)
i386/AFURLSessionManager.o

ld: 205 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

-force_load オプションを追加してライブラリを強制的にロードしようとしました

force_load $(SOURCE_ROOT)/testLib.a

-ObjC の代わりに他のリンカ フラグを使用しましたが、どちらも役に立ちませんでした。

ハックせずに使用するにはどうすればよいですか?

私はここでこの解決策を見つけました

http://atastypixel.com/blog/avoiding-duplicate-symbol-issues-when-using-common-utilities-within-a-static-library/

しかし、それは実際には実用的ではありません。

4

0 に答える 0