web-dev-qa-db-ja.com

iOSのリンカーエラー(アーキテクチャx86_64のシンボルが重複しています)

次のエラーが発生し続けます。

duplicate symbol _llvm.embedded.module in:
/Users/name/Documents/FacebookSDKs-iOS-20150910/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKApplicationDelegate.o)
/Users/name/Documents/FacebookSDKs-iOS-20150910/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKServerConfiguration.o)
ld: 102 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

FBSDKを削除して再インストールしようとしましたが、うまくいきません。また、フレームワークをSwiftにブリッジしているという事実が問題である可能性があります。私のブリッジヘッダーには以下が含まれています。

#ifndef EggCrush_Bridge_h
#define EggCrush_Bridge_h

#import <FBSDKCoreKit/FBSDKCoreKit.h>

#endif

私のAppDelegate.SwiftファイルはFBSDKCoreKitをインポートします。
他のリンカーフラグはありません。
Xcode 6.3.2を実行し、iOS 8.3用のプロジェクトをビルドしています

このエラーを解決する方法は?

20
Dan

間違っていない場合は、2015年9月10日にFacebookが FacebookSDKs-iOS-20150910.Zip という名前でリリースしたSDKを使用しています。 FacebookSDKs-iOS-20150813.Zip という名前の2015年8月13日にリリースされたSDKを使用し、可能であれば複製の問題についてFacebookに報告してください。ありがとうございました。

51
Guan Chuan

このスレッド は、Xcode 7でFacebook 4.6.0 SDKをコンパイルして問題を解決する必要があることを説明しています。 Xcode 7でコンパイルした後、うまくいきました。

Facebook iOS SDK 4.6.0では、App Thinning(ビットコード)のサポートが追加されているため、Xcode 7.0より前のXcodeバージョンでは対応できません。

25

重複シンボルエラーが発生したときに、テキストエディターでproject.xcodeproj XMLファイルを開き、重複シンボルを検索しました。ほとんどの場合、FacebookSDKは同じ「id」プロパティを持つ複数の行に表示されます。現在のプロジェクトのバックアップがあることを確認し、このファイル内の重複(同じIDを持つもの)を手動で削除してみてください。ファイルを保存してコンパイルし、プロジェクトが実行されるかどうかを確認します。

重複する行を1行だけ削除して、重複の数(見かけ上102 !!)が最初に減少するかどうかを確認できます。

2
Amy
  1. FacebookSDKs-iOS-20160115.ZipおよびXCODEバージョンXCODE 6.4[〜#〜] xcode [〜#〜]以下のバージョンで、このタイプの問題が作成されます。
  2. FacebookSDKs-iOS-20160115.ZipこれはXCODE 7で使用されます。
  3. https://developers.facebook.com/resources/FacebookSDKs-iOS-20150813.Zipを使用できます。
  4. あなたのためにうまく動作します。
2
Sanandiya Vipul

シンボルの重複という同じ問題に直面しました。私はXcode 6.4を使用していましたが、後でXcode 7.にアップグレードしたときにうまくいきました。以前のバージョンを使用している場合は、Xcodeを7.0ににアップグレードすることをお勧めします。