web-dev-qa-db-ja.com

ビルド時にFacebookSDKとBoltsが互いに競合する(シンボルが重複する)

何が問題なのかわかりません。armv7で重複している91個のシンボルが見つかりました

Swift iOS 7.1をターゲットとするプロジェクトに参加しています。

どちらのフレームワークも最新バージョンです。

プロジェクトのクリーニングと派生データの削除を試みましたが、失敗しました。

duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._URL in:
    /Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
    /Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._appStoreId in:
    /Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
    /Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._appName in:
    /Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
    /Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
31
Ryne Cheow

同じ問題があった。

  • Bolts.frameworkを削除することは解決策ではありませんでしたLeo Flaherty 言及(受け入れられた回答にコメント)。
  • iOS_DEV で言及された解決策を使用すると、醜いハックのように思えます。
  • 最新のParseおよびFacebook SDKを使用することも解決策ではありませんでしたによって言及されました)SimonBøgh )Facebook SDKのバージョン3.xを使用していて、最新のバージョンは4.xであるためです。 Facebook SDK変更ログ の言及:Facebook SDK for iOS v4.0はメジャーバージョンのアップグレードです。期限を守る必要があったため、新しい4.x SDKバージョンに合わせるために、すべてのFacebookコードを書き直すことに時間を費やすことができませんでした。

私が提案する解決策:

Bolts.frameworkとFacebookSDK.frameworkをフレームワークとしてプロジェクトに追加する代わりに、Podsとして追加します。

pod 'Bolts'
pod 'Facebook-iOS-SDK', '3.23.1'

最新ではないバージョンを使用する必要がある場合に備えて、利用可能なすべてのFacebook SDKバージョン こちら を見つけてください。
Swiftを使用している場合は、ブリッジヘッダーに以下を追加する必要があります。
#import <FacebookSDK/FacebookSDK.h> #import <Bolts/Bolts.h>

17
Alex

91の複製で同じ問題が発生しました。私にとってうまくいったのは、Facebookの新しいSDKにすでに何らかの形で含まれているように見えるBolts.frameworkを削除することだけでした。

それが役に立てば幸い!

50
winterized

回答は既に受け入れられていることは知っていますが、これはFacebookによって解決されました

最新のParse SDK(1.7.0)およびFacebook SDK(4.0.0)これを書いている時点では、問題なく動作するはずです。どちらのSDKも数時間前に更新されました。

Parlt SDKからBolts.frameworkとParse.frameworkをインポートしてコピーし、Facebooks SDK(現在はFBSDKCoreKit.frameworkと呼ばれています)にリンクして、プロジェクトを正常にビルドしました。

重複する質問: Parse and facebook sdk -duplicate symbol

1
Simon Bøgh

これでうまくいきました。

1)parseに付属するBolts.frameworkを削除しました。

2)解析(コピー先フォルダーへのコピーの選択)とfacebookSDK(コピー先フォルダーへのチェックを外す)のみを追加しました。ビルド設定でフレームワーク検索パスもチェックしました。

3)NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";を追加

前のAppDelegate.m

@interface AppDelegate ()

@end
1
iOS_DEV