FB.AppRequest 崩溃

FB.AppRequest Crash

所以我不确定这是 Unity 问题还是 Facebook Unity SDK 问题,或者我可能正在做的事情?它最近才开始出现,在我不得不为 iOS9 字体问题更新 Unity 之前它一直运行良好。

它在 Xcode 中崩溃的点是:

+ (instancetype)instanceWithRequestID:(int)requestID
{
    FBUnitySDKDelegate *instance = [[FBUnitySDKDelegate alloc] init];
    instance->_requestID = requestID;
    [g_instances addObject:instance];  // Breaks on this line. instance is nil
    return instance;
}

我用于 AppRequest 的代码是

public void RequestLivesFromFriends(string[] friendIds)
{
    if(!FB.IsLoggedIn)
    {
        LoginToFacebook ();
        return;
    }
    FB.AppRequest(
        "Please send me a life!",
        Facebook.Unity.OGActionType.ASKFOR,
        livesIdValue,
        friendIds,
        "RequestLife",
        "Request a life from your friends",
        requestLifeCallback
        );
}

SDK 目前是否存在问题?还是我做错了什么?

好吧,最后我自己找到了解决方案。

我在 FBUnitySDKDelegate.m

上将 -fno-objc-arc 设置为编译器标志

显然,使用较新版本的 SDK(或者可能是其他原因,我不确定)会导致 NSMutableArray g_instances 转换为 NSString。因此,当代码尝试将 FBUnitySDKDelegate 对象 'instance' 添加到 g_instances 时,它试图在 NSString 上调用 addObject,传入 FBUnitySDKDelegate,这显然不起作用。

是的,如果您遇到此问题,请检查文件中的编译器标志。