Ошибка: не удается найти версию Facebook SDK.

SDK 7.x не работает на Unity 5.1.0f3, я всегда получал ошибку, версия не найдена. кто-то видел эту ошибку?


person Bilel Mnasser    schedule 12.06.2015    source источник


Ответы (2)


На самом деле это просто предупреждение. Но вы можете это исправить.

Есть несколько мест, где плагин facebook вызывает

FBBuildVersionAttribute.GetVersionAttributeOfType(typeof(AbstractFacebook));

Итак, сначала вам нужно изменить FBBuildVersionAttribute на это:

// we are going to apply this attribute to Class
// instead of Assembly
// also make it inheritable for all implementations
[AttributeUsage(AttributeTargets.Class, Inherited = true)]
public class FBBuildVersionAttribute : Attribute
{
    private DateTime buildDate;
    private string buildHash;
    private string buildVersion;

    private string sdkVersion;

    public DateTime Date { get { return buildDate; } }
    public string Hash { get { return buildHash; } }
    public string SdkVersion { get { return sdkVersion; } }
    public string BuildVersion { get { return buildVersion; } }

    public FBBuildVersionAttribute(string sdkVersion, string buildVersion)
    {
        this.buildVersion = buildVersion;
        var parts = buildVersion.Split('.');
        buildDate = DateTime.ParseExact(parts[0], "yyMMdd", System.Globalization.CultureInfo.InvariantCulture);
        buildHash = parts[1];

        this.sdkVersion = sdkVersion;
    }

    public override string ToString()
    {
        return buildVersion;
    }

    public static FBBuildVersionAttribute GetVersionAttributeOfType(Type type)
    {
        foreach (FBBuildVersionAttribute attribute in getAttributes(type))
        {
            return attribute;
        }
        return null;
    }

    private static FBBuildVersionAttribute[] getAttributes(Type type)
    {
        if (type == null)
            throw new ArgumentNullException("type");

        // we want to get attributes from type instead of assmebly
        return (FBBuildVersionAttribute[])(type.GetCustomAttributes(typeof(FBBuildVersionAttribute), false));
    }
}

Нет, вам просто нужно добавить этот атрибут к AbstractFacebook:

[FBBuildVersionAttribute("7.0.1", "150604.98558e55096475c")]
public abstract class AbstractFacebook : MonoBehaviour
{
    // ...
}

Обратите внимание, что часть 98558e55096475c является мусорной строкой. Это не настоящий хэш сборки, потому что у меня его нет.

person d12frosted    schedule 25.06.2015

Получите последнюю версию FB Unity SDK. Журнал изменений говорит, что это исправлено.

https://developers.facebook.com/docs/unity/change-log

person Antony Blackett    schedule 04.07.2015