Unity3D-使用FacebookSDK闪退问题

参考:http://blog.csdn.net/pz789as/article/details/54890299


我使用的是Unity5.5.0+FBSDK7.9+XCODE8.2

本来想着直接使用fb自己的sdk应该不会有什么问题,然而中途却遇到闪退,具体闪退的地方是在打开fb登录页面之后,返回的时候的崩溃,也不知道什么原因。

在网上找了大半天,终于被我找到了,原来很多人已经遇到过了。因此在这里记录下:

解决方法原文地址:

点我看原文

可能需要翻墙,反正我都是翻墙看的,主要是加了两个文件,这个比较高级,不需要改unity导出的文件,其他人的都是直接修改导出文件,这样在调试导出的时候特别麻烦。

这个人直接重写了UnityAppController中的application方法。

OverrideUnityAppController.h

#import "UnityAppController.h"

@interface OverrideUnityAppController : UnityAppController

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;

@end

OverrideUnityAppController.mm  注意后缀名称是.mm哦

#import "OverrideUnityAppController.h"
#include "PluginBase/AppDelegateListener.h"

@implementation OverrideUnityAppController

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    NSMutableArray* keys = [NSMutableArray arrayWithCapacity:3];
    NSMutableArray* values = [NSMutableArray arrayWithCapacity:3];
    auto addItem = [&](NSString* key, id value)
    {
        [keys addObject:key];
        if (value == nil){
            [values addObject:[NSNull null]];
        }else{
            [values addObject:value];
        }
    };
    addItem(@"url", url);
    addItem(@"sourceApplication", sourceApplication);
    addItem(@"annotation", annotation);
    
    NSDictionary* notifData = [NSDictionary dictionaryWithObjects:values forKeys:keys];
    AppController_SendNotificationWithArg(kUnityOnOpenURL, notifData);
    return YES;
}

@end

IMPL_APP_CONTROLLER_SUBCLASS(OverrideUnityAppController)

其实就是在添加item的时候判断value是否为空,因为unity的疏忽,所以需要自己加上。

我们可以把这两个文件放到Unity编辑器中的Plugins/iOS下面,这样每次导出都不用修改了,像这样:



这次让我学习到一个新东西,就是 

IMPL_APP_CONTROLLER_SUBCLASS


=============

另外后面又发现,unity的新版本,已经把这个问题解决了,下载最新的5.5.1即可,不过我还没试过,下载太慢了,如果你不想下载,也可以使用我这个方法去做。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏小败在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值