ios - Unity和Facebook 6.0:解决主机超时:Integrated-plugin-canvas-rsrc.fbsbx.com

标签 ios facebook macos unity3d

当我尝试使用Unity的Facebook SDK 6.0时,有时可以正常工作,有时会出现以下错误消息:

解决主机超时:Integrated-plugin-canvas-rsrc.fbsbx.com
UnityEngine.Debug:LogError(Object)
FbDebug:Error(字串)
c__IteratorA:MoveNext()(在Assets / Facebook / Scripts / FB.cs:398)

尝试为MAC建立项目时出现相同的错误。

它在移动设备上完美运行。

任何想法 ?

(我已经在后处理器文件中将UNITY 4_5更改为UNITY 4_6。我正在使用4_6)

非常感谢 !

最好的祝福,

AB

最佳答案

我强行使用它,这是从LoadFacebookClass文件修改后的FB.cs方法,它将尝试多次,通常需要5到15次尝试才能下载.dll。

public static IEnumerator LoadFacebookClass(string className, LoadedDllCallback callback)
    {
        int tryAgainForFewTimes = 20; //--Changed--
        while(tryAgainForFewTimes-- > 0) //--Changed--
        {
            var url = string.Format(IntegratedPluginCanvasLocation.DllUrl, className);
            var www = new WWW(url);
            FbDebug.Log("loading dll: " + url);
            yield return www;

            if (www.error != null)
            {
                FbDebug.Error(www.error);
                print("retry: " + tryAgainForFewTimes); //--Changed--
                continue;    //--Changed--
            }
            tryAgainForFewTimes = 0; //--Changed--

#if !UNITY_WINRT
#if UNITY_4_5 || UNITY_4_6 || UNITY_5_0
            var authTokenWww = new WWW(IntegratedPluginCanvasLocation.KeyUrl);
            yield return authTokenWww;
            if (authTokenWww.error != null)
            {
                FbDebug.Error("Cannot load from " + IntegratedPluginCanvasLocation.KeyUrl + ": " + authTokenWww.error);
                authTokenWww.Dispose();
                yield break;
            }
            var assembly = Security.LoadAndVerifyAssembly(www.bytes, authTokenWww.text);
#else
            var assembly = Security.LoadAndVerifyAssembly(www.bytes);
#endif
            if (assembly == null)
            {
                FbDebug.Error("Could not securely load assembly from " + url);
                www.Dispose();
                yield break;
            }

            var facebookClass = assembly.GetType(facebookNamespace + className);
            if (facebookClass == null)
            {
                FbDebug.Error(className + " not found in assembly!");
                www.Dispose();
                yield break;
            }

            // load the Facebook component into the gameobject
            // using the "as" cast so it'll null if it fails to cast, instead of exception
            var fb = typeof(FBComponentFactory)
                    .GetMethod("GetComponent")
                    .MakeGenericMethod(facebookClass)
                    .Invoke(null, new object[] { IfNotExist.AddNew }) as IFacebook;

            if (fb == null)
            {
                FbDebug.Error(className + " couldn't be created.");
                www.Dispose();
                yield break;
            }

            callback(fb);
#endif
            www.Dispose();
        } //--Changed--
    }

关于ios - Unity和Facebook 6.0:解决主机超时:Integrated-plugin-canvas-rsrc.fbsbx.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26410370/

相关文章:

ios - NSDictionaries 的 NSArray 作为查询参数

ios - 更改 UILabel 文本导致 ScrollView 跳转

c# - 如何在不重定向到 facebook 的情况下获取用户访问 token 或授权码

macos - Mavericks下的OpenGL 4.1(?)

ios - 使用 setNeedsLayout 动画约束变化

ios - 将某一年的周数转换为月份名称

ios - 使用 Facebook SDK 归档项目时 Xcode clang 段错误

node.js - 如何在 Node js 中使用 facebook Messenger 发送图像 API?

objective-c - 注册显示重新配置回调

javascript - Electron 公证失败,原因是二进制文件使用的10.9 SDK版本早于SDK