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,这显然不起作用。
是的,如果您遇到此问题,请检查文件中的编译器标志。
所以我不确定这是 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,这显然不起作用。
是的,如果您遇到此问题,请检查文件中的编译器标志。