web-dev-qa-db-ja.com

FacobookLoginポッドの更新、エラー:セレクター 'objectForJSONString:error:'の既知のクラスメソッドがありません

最近、アプリに実装されているFacebookLogin Buttonの下記のポッドを更新しました

pod 'FacebookCore'
pod 'FacebookLogin'

両方のポッドのバージョンは0.7.0です

コマンドを使用してポッドを更新しました

pod update

プロジェクトをビルドしたときに更新した後、パスにエラーがあります

Pods/FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManagerLogger.m:163:60:セレクター 'objectForJSONString:error:'の既知のクラスメソッドがありません

これらのエラーは両方とも同じクラスの2つの場所で発生しています

セレクター 'objectForJSONString:error:'の既知のクラスメソッドはありません

NSDictionary<id, id> *clientState = [FBSDKBasicUtility objectForJSONString:parameters[FBSDKLoginManagerLoggingClientStateKey] error:NULL];
10
alpha47

私は研究開発を行いましたが、解決策はありませんでした。 FacebookLoginポッド全体を削除するだけで解決しました。

#pod 'FacebookCore'
#pod 'FacebookLogin'

次に、プロジェクトをビルドし、最新のバージョンの同じポッドを5.0に再インストールすると、問題は解決したようです。

2
alpha47

FBSDKBasicUtilityをFBSDKInternalUtilityに変更する必要がありました。 Xcodeは、変更を行うためにファイルのロックを解除するように要求します。

5
Chris

また、FacebookからFacebook SDKを5.0にアップグレードするよう通知されました(以前は4.39.0でした)以下は、Facebook SDKの最新機能を示すリンクです。

https://developers.facebook.com/docs/app-events/upgrade-guide

これらを使用する場合は、SDKを更新し、上記のリンクに示すように、コードレベルでFacebookの新しいポッドを統合する必要があります。

これらの機能を使用したくない場合は、ポッドを特定のバージョンに制限する必要があるため、将来的にはpod update Facebookポッドは変更されません。

お役に立てれば。

3
BhargavR

古いiOSバージョンをサポートするアプリを構築するには、Xcode 10を使用する必要がありました。デバイス(シミュレータではない)で実行すると、このエラーが発生します。このエラーは、Xcode 11の使用を再開すると解消されます。

1
Daniel Ryan