最近、アプリに実装されている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];
私は研究開発を行いましたが、解決策はありませんでした。 FacebookLoginポッド全体を削除するだけで解決しました。
#pod 'FacebookCore'
#pod 'FacebookLogin'
次に、プロジェクトをビルドし、最新のバージョンの同じポッドを5.0に再インストールすると、問題は解決したようです。
FBSDKBasicUtilityをFBSDKInternalUtilityに変更する必要がありました。 Xcodeは、変更を行うためにファイルのロックを解除するように要求します。
また、FacebookからFacebook SDKを5.0にアップグレードするよう通知されました(以前は4.39.0でした)以下は、Facebook SDKの最新機能を示すリンクです。
https://developers.facebook.com/docs/app-events/upgrade-guide
これらを使用する場合は、SDKを更新し、上記のリンクに示すように、コードレベルでFacebookの新しいポッドを統合する必要があります。
これらの機能を使用したくない場合は、ポッドを特定のバージョンに制限する必要があるため、将来的にはpod update
Facebookポッドは変更されません。
お役に立てれば。
古いiOSバージョンをサポートするアプリを構築するには、Xcode 10を使用する必要がありました。デバイス(シミュレータではない)で実行すると、このエラーが発生します。このエラーは、Xcode 11の使用を再開すると解消されます。