如何在 facebook 中解决此错误 "Failed to send AppEvents" - IOS sdk

How to resolve this error "Failed to send AppEvents" in facebook - IOS sdk

我们在项目中使用了 Facebook 分析。 Application ID 和 Bundle Id 配置完美。它一直工作到昨天。突然就不行了,我们什么都没改。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [[FBSDKApplicationDelegate sharedInstance] application:application
                             didFinishLaunchingWithOptions:launchOptions];
return YES;
}


- (void)applicationDidBecomeActive:(UIApplication *)application {

    NSLog(@"AppActive");

    //NSLog(@"+++ App active Trigger 1");

    [FBSDKAppEvents activateApp];
}


     FBSDKLog: Failed to send AppEvents: Error Domain=com.facebook.sdk.core Code=8 "(null)" UserInfo={com.facebook.sdk:FBSDKGraphRequestErrorCategoryKey=0, com.facebook.sdk:FBSDKGraphRequestErrorHTTPStatusCodeKey=400, com.facebook.sdk:FBSDKErrorDeveloperMessageKey=(#100) Param extinfo[2] must be an integer, com.facebook.sdk:FBSDKGraphRequestErrorGraphErrorCode=100, com.facebook.sdk:FBSDKGraphRequestErrorParsedJSONResponseKey={
            body =     {
                error =         {
                    code = 100;
                    "fbtrace_id" = BS3nqPCTUeR;
                    message = "(#100) Param extinfo[2] must be an integer";
                    type = OAuthException;
                };
            };
            code = 400;
        }}

我通过将 Targets>General>Identity>Build 从 0.19 更改为 19 解决了这个问题。

我今天开始遇到同样的错误并追踪 FBSDKAppEvents 兔子洞,结果发现 "Build" 数字现在必须是整数。不知道 FB 服务器端发生了什么变化,但显然我们不能在内部版本号中使用浮点数。

看图,问题出在extInfo[2],也就是FBSDKAppEventsDeviceInfo(第212行)中的_longVersion。