19

新しい iOS Parse API (1.6.4) をダウンロードし、プロジェクトをビルドしようとしました。すると、次のエラーが表示されます。

Undefined symbols for architecture arm64" "_BFTaskMultipleExceptionsException", referenced from:
  ___53+[PFObject(Private) deleteAllAsync:withSessionToken:]_block_invoke214 in Parse(PFObject.o)
  ___65+[PFObject(Private) _deepSaveAsync:withCurrentUser:sessionToken:]_block_invoke311 in Parse(PFObject.o) 
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

スクリーンショット: スクリーンショット

4

11 に答える 11

12

Parse 1.6.4 および Facebook SDK 3.23 の一時的な回避策:

インポートの後、実装セクションの前に、AppDelegate.m または別のクラスに次の定数を追加します。

NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";

@interface IPAppDelegate ()
@end

@implementation IPAppDelegate

Parse/Facebook側で解決されるまで、問題を解決する必要があります。

-- 更新: このソリューションは、上記の Facebook および Parse SDK バージョンのみを対象としており、これらのバージョンは現在古くなっています。

新しい Parse SDK 1.7.4 は、新しい Facebook SDK 4.0 で正しく動作し、そのような問題は発生しないはずです。

于 2015-03-09T09:59:56.173 に答える
5

Parse iOS v1.6.3 が必要な人のための URL を見つけることができました。

https://parse.com/downloads/ios/parse-library/1.6.3

1.6.3 を使用して、すべてが正しくコンパイルされることを確認できます。

于 2015-03-06T23:50:08.750 に答える
3

Parse (1.7.4) と Facebook (4.2.0) の最新の SDK を使用して、まったく同じ問題が発生しました。この問題は、Parse SDK と Facebook SDK の両方に含まれる Bolts.framework が原因で発生します。何らかの理由で、Parse の Bolts フレームワークは、Facebook SDK に含まれているものより常に新しいものです。

これらの SDK のインストール、削除、および再インストールを何度も試みた後、ドラッグ アンド ドロップ方法と Cocoapods を使用して、次の手順を実行することで、最終的にこの問題を克服することができました。

  1. プロジェクトから Parse、Facebook、および Bolts フレームワークのインスタンスを完全に削除しました。
  2. Facebook 開発者ページの手順に従って、FBSDKCoreKit フレームワーク (およびプロジェクトのニーズに合わせて ShareKit と LoginKit) を再度追加しました : https://developers.facebook.com/docs/ios/getting-started/アイテムをプロジェクトにコピーします。
  3. ドラッグ アンド ドロップ方式を使用して、Parse フレームワークをプロジェクトに再度追加しました。Facebook ログイン経由でユーザーを作成するために必要だったので、ParseFacebookUtilsV4 フレームワークも追加しました。

  4. これはすべてを解決する最も重要なステップでした: Parse が提供する Bolts.framework をプロジェクトにドラッグして追加しましたが、プロジェクトにコピーしないように注意しました (FBSDKCoreKit フレームワークの場合と同様に、「アイテムのコピー」の選択を解除しました)。プロジェクト フォルダにコピーすると、プロジェクトはビルドされません。

これらの手順により、最終的にすべての問題が解決しました。

于 2015-06-15T09:34:44.590 に答える
3

配置する

NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";

インポートと実装の間に Sergey Surkov によって提案された App Delegate で、ビルド段階で libstdc++.6.dylib を追加するとうまくいきました。https://stackoverflow.com/a/27628797/1036945もご覧ください

于 2015-04-06T01:56:26.523 に答える
2

ココアポッドを使用している場合は試してくださいpod update Bolts

于 2015-04-08T12:11:22.403 に答える
1

EDIT2: FacebookSDK Update 3.23.2 はこの問題を解決し、Bolts 1.1.4 を含みます: https://developers.facebook.com/resources/facebook-ios-sdk-3.23.2.pkg


編集: ビルド設定から -ObjC "Other Linker Flag" をドロップします。


Facebook SDK が統合されている場合、Parse では Bolts.framework は必要ありません。
Facebook iOS SDK 3.14 以降、bolts.framework が含まれています。https://developers.facebook.com/docs/ios/upgrading-3.x

Bolts.framework の手動インスタンスを削除してみてください。

于 2015-03-06T16:08:26.807 に答える
0

記録をまっすぐにするだけです。

この問題は、Facebook SDK Bolts と Parse Bolts フレームワークの間の Bolts フレームワークとの競合が原因で発生します。この問題を回避するための一時的な解決策は、Facebook SDK の依存関係に Cocoapods を使用することです。これは、修正作業中に役立ちます。

このバグは Facebook によって認識されており、修正のために適切なチームに割り当てられています。

アップデートについては、https://developers.facebook.com/bugs/383331175179417/に従ってください。

于 2015-03-17T08:49:31.543 に答える
0

facebook sdk フレームワークとボルト フレームワーク (fb sdk に付属) がプロジェクトにインポートされていることを確認してください。

于 2015-04-01T16:52:43.210 に答える
0

同様のエラー (「... は dylib ではありません」および「アーキテクチャの未定義シンボル」) が表示されました必要なフレームワーク (「Bolts.framework」と「Parse.framework」) のみをドラッグしました。解析フォルダーを削除し、2 つのフレームワークにドラッグすると、すべてが期待どおりに機能します:)

于 2015-06-20T07:11:41.453 に答える
-1

Try downloading the latest SDK and replacing all of the Parse frameworks with the latest version.

于 2015-03-25T16:12:36.010 に答える
-1

私はまったく同じ問題を抱えていました。Bolts を 1.1.4 に更新すると解決しました (Bolts は以前は 1.1.3 でした)。

ココアポッドを使用する場合は、この行をポッドファイルに変更または追加します

pod 'Bolts', '1.1.4'

そうでない場合は、ここからダウンロードしてください: https://github.com/BoltsFramework/Bolts-iOS/releases

于 2015-03-07T13:08:25.907 に答える