Facebook-sdk-for-unity: تسجيل الدخول إلى Facebook لا يعمل على iOS Unity 2018.4.22f1

تم إنشاؤها على ٦ مايو ٢٠٢٠  ·  20تعليقات  ·  مصدر: facebook/facebook-sdk-for-unity

لذلك عندما حاولت تسجيل الدخول إلى facebook باستخدام واجهة برمجة التطبيقات FB.LogInWithReadPermissions ، بمجرد الضغط على "متابعة" ، يتم عرض عرض الويب لجزء من الثواني ثم يتم رفضه من تلقاء نفسه ولكن الشاشة الشفافة لا تزال موجودة تحجب جميع المدخلات. لم يتم تشغيل أي من رد الاتصال.
لذلك قمت بتتبعها وصولاً إلى هذه الرموز بطريقة openURLWithSafariViewController في FBSDKLoginKit:

if (@available(iOS 11.0, *)) {
       if ([sender isAuthenticationURL:url]) {
              [self _setSessionCompletionHandlerFromHandler:handler];
              [self _openURLWithAuthenticationSession:url];
              return;
     }
   }
- (void)_openURLWithAuthenticationSession:(NSURL *)url
{
  Class AuthenticationSessionClass = fbsdkdfl_ASWebAuthenticationSessionClass();

  if (!AuthenticationSessionClass) {
    AuthenticationSessionClass = fbsdkdfl_SFAuthenticationSessionClass();
  }

  if (AuthenticationSessionClass != nil) {
    if (_authenticationSession != nil) {
      [FBSDKLogger singleShotLogEntry:FBSDKLoggingBehaviorDeveloperErrors
                         formatString:@"There is already a request for authenticated session. Cancelling active SFAuthenticationSession before starting the new one.", nil];
      [_authenticationSession cancel];
    }
    _authenticationSession = [[AuthenticationSessionClass alloc] initWithURL:url
                                                           callbackURLScheme:[FBSDKInternalUtility appURLScheme]
                                                           completionHandler:_authenticationSessionCompletionHandler];
    if (@available(iOS 13.0, *)) {
      if ([_authenticationSession respondsToSelector:@selector(setPresentationContextProvider:)]) {
        [_authenticationSession setPresentationContextProvider:self];
      }
    }
    _isRequestingSFAuthenticationSession = YES;
    [_authenticationSession start];
  }
}

يستخدم Facebook أساسًا ASWebAuthenticationSession لـ OAuth ولكن بطريقة ما تم إيقاف [_authenticationSession start] ولم يعد أبدًا ، لم يتم تشغيل _authenticationSessionCompletionHandler ترك التطبيق معلقًا

لاحظ أن تسجيل الدخول إلى Facebook يعمل بشكل جيد على Unity 2018.4.21f1 والإصدارات الأقدم ولكنه يتعطل في 2018.4.22f1.
اي فكرة لماذا وكيف تصلح هذا؟

التعليق الأكثر فائدة

لقد "أصلحت" هذا عن طريق إضافة معالج ما بعد الإنشاء

#if UNITY_IOS
     [PostProcessBuild(999)]
     public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
     {
         string preprocessorPath = path + "/Classes/Preprocessor.h";
         string text = File.ReadAllText(preprocessorPath);
         text = text.Replace("UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE 1", "UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE 0");
         File.WriteAllText(preprocessorPath, text);
     }
#endif

بدلاً من ذلك ، إذا كنت لا ترغب في إعداد معالج لاحق ، فيمكن إيقاف تشغيل علامة UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE ببساطة عن طريق إلغاء تحديد الخيار "عرض الإطار الإضافي عند الإيقاف المؤقت" في منطقة إعدادات مشغل iOS.

ال 20 كومينتر

لدي نفس المشكلة بالضبط. استخدام Unity 2019.3.13f1.

لكنني أعتقد أنه يعمل مع Facebook 7.18.1

ظهرت المشكلة لي بعد الترقية إلى 7.19.2.

واجهت نفس المشكلة مع Unity 2019.3.9f1 ، لقد قمنا بالترقية إلى 7.19.2

لدي نفس المشكلة بالضبط. استخدام Unity 2019.3.13f1.

لكنني أعتقد أنه يعمل مع Facebook 7.18.1

ظهرت المشكلة لي بعد الترقية إلى 7.19.2.

سنحاول Facebook 7.18.1 إذا لم تظهر المشكلة.

لدي نفس المشكلة بالضبط. استخدام Unity 2019.3.13f1.
لكنني أعتقد أنه يعمل مع Facebook 7.18.1
ظهرت المشكلة لي بعد الترقية إلى 7.19.2.

سنحاول Facebook 7.18.1 إذا لم تظهر المشكلة.

تحديث: حاول مع v7.18.1 يعمل. شكرا wagenheimer للنصيحة . آمل أن يتم إصلاح هذا قريبًا باستخدام أحدث إصدار من SDK.

الحصول على هذه المشكلة بالضبط على iOS 13.4 و Unity 2019.3.13f1 وكلاهما Facebook SDK 7.19.2 و 7.18.1 للأسف. قم بتنظيف Facebook SDK الرجوع إلى إصدار أقدم أيضًا. iamAloTheGreat هل فعلت أي شيء إلى جانب الرجوع إلى إصدار أقدم من SDK لتشغيله؟

لا يزال يحدث في Unity 2018.4.22f1 على أحدث إصدار من Facebook SDK و 7.18.1

من المثير للاهتمام أنه يومض عرض الويب لثانية واحدة فقط بغض النظر عما إذا كان Safari قد تم تسجيل الدخول إلى FB أم لا.

لدي نفس المشكلة ، إنه يعمل في Unity 2019.3.7f ولكن ليس 2019.3.13f1 وأيضًا ليس Unity 2020.1. أعتقد أن هذه قضية وحدة وليست قضية فيسبوك.

لقد كتبت في Unity Forum ، يرجى الكتابة هناك أيضًا حتى تظهر (https://forum.unity.com/threads/facebook-login-broken-in-unity-2019-3-13f1-but-works-in -2019-3-7f1.888502 /).

الحصول على هذه المشكلة بالضبط على iOS 13.4 و Unity 2019.3.13f1 وكلاهما Facebook SDK 7.19.2 و 7.18.1 للأسف. قم بتنظيف Facebook SDK الرجوع إلى إصدار أقدم أيضًا. iamAloTheGreat هل فعلت أي شيء إلى جانب الرجوع إلى إصدار أقدم من SDK لتشغيله؟

aVolnov كلا ، لقد حاولت فقط تقليله. ولكن بدلاً من استيراد 7.18.1 مباشرةً إلى المشروع الرئيسي ، قمت بإنشاء مشروع وهمي> تم استيراد 7.18.1> حذف مجلد Facebook SDK و PlayServicesResolver في المشروع الرئيسي (أثناء إغلاق Unity) ثم الصق مجلدين من الدمية إلى الملف رئيسي. لقد عملت بطريقة ما بشكل جيد مع كل من iOS و Android.

iamAloTheGreat هل ما زلت في Unity 2019.3.9؟ لقد جربت طريقتك على .13 ولم تحدث أي فرق ، وما زلت لا تعمل. سنحاول الرجوع إلى .9 ومعرفة ما إذا كان يعمل. هذا كل 3 أيام بعد أن أعدت تثبيتات Unity القديمة ، d'oh.

يمكن تأكيد عدم ظهور المشكلة بعد الرجوع إلى إصدار 2019.3.9f1. لا توجد مشاكل في الرجوع إلى إصدار أقدم أيضًا ، كان عليك فقط حذف ذاكرة التخزين المؤقت للحزمة من المكتبة.

aVolnov نعم أنا في الوحدة 2019.3.9. من الجيد معرفة أن الرجوع إلى الدرجة 9. حل مشكلتك. لكنني لست متأكدًا حقًا مما إذا كانت المشكلة تتعلق بالوحدة أم مع Facebook.

لقد "أصلحت" هذا عن طريق إضافة معالج ما بعد الإنشاء

#if UNITY_IOS
     [PostProcessBuild(999)]
     public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
     {
         string preprocessorPath = path + "/Classes/Preprocessor.h";
         string text = File.ReadAllText(preprocessorPath);
         text = text.Replace("UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE 1", "UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE 0");
         File.WriteAllText(preprocessorPath, text);
     }
#endif

يبدو أن حل hex يعمل. هل يمكنك من فضلك توضيح ما يفعله UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE؟

لقد "أصلحت" هذا عن طريق إضافة معالج ما بعد الإنشاء

#if UNITY_IOS
     [PostProcessBuild(999)]
     public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
     {
         string preprocessorPath = path + "/Classes/Preprocessor.h";
         string text = File.ReadAllText(preprocessorPath);
         text = text.Replace("UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE 1", "UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE 0");
         File.WriteAllText(preprocessorPath, text);
     }
#endif

بدلاً من ذلك ، إذا كنت لا ترغب في إعداد معالج لاحق ، فيمكن إيقاف تشغيل علامة UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE ببساطة عن طريق إلغاء تحديد الخيار "عرض الإطار الإضافي عند الإيقاف المؤقت" في منطقة إعدادات مشغل iOS.

نفس المشكلة مع Unity 2018.4.23f1 ، لذا عدت إلى 2018.4.17f1 ، والآن تعمل جميعها مع أحدث إصدار من facebook's sdk 7.19.2

المشكلة موجودة في Unity2019.4.0f1 LTS UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE مساعدة خاطئة

يبدو أنني أواجه مشكلة بالضبط مثل وصف SangCrowdstar . يتم عرض عرض الويب لجزء من الثواني ثم يتم رفضه من تلقاء نفسه وتتوقف اللعبة.

macOS كاتالينا
الوحدة 2018.4.23f1
Facebook Unity SDK 7.20.0

مسألة ذات صلة؟ => https://github.com/facebook/facebook-sdk-for-unity/issues/289

أحاول حل mdobele . سوف تبقي على نشر.

لقد "أصلحت" هذا عن طريق إضافة معالج ما بعد الإنشاء

#if UNITY_IOS
     [PostProcessBuild(999)]
     public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
     {
         string preprocessorPath = path + "/Classes/Preprocessor.h";
         string text = File.ReadAllText(preprocessorPath);
         text = text.Replace("UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE 1", "UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE 0");
         File.WriteAllText(preprocessorPath, text);
     }
#endif

بدلاً من ذلك ، إذا كنت لا ترغب في إعداد معالج لاحق ، فيمكن إيقاف تشغيل علامة UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE ببساطة عن طريق إلغاء تحديد الخيار "عرض الإطار الإضافي عند الإيقاف المؤقت" في منطقة إعدادات مشغل iOS.

يعمل إلغاء تحديد "عرض إطار إضافي عند الإيقاف المؤقت" بالنسبة لي. نجح تسجيل الدخول إلى Facebook! شكرا.

macOS كاتالينا
الوحدة 2018.4.23f1
Facebook Unity SDK 7.20.0

لقد "أصلحت" هذا عن طريق إضافة معالج ما بعد الإنشاء

#if UNITY_IOS
     [PostProcessBuild(999)]
     public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
     {
         string preprocessorPath = path + "/Classes/Preprocessor.h";
         string text = File.ReadAllText(preprocessorPath);
         text = text.Replace("UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE 1", "UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE 0");
         File.WriteAllText(preprocessorPath, text);
     }
#endif

بدلاً من ذلك ، إذا كنت لا ترغب في إعداد معالج لاحق ، فيمكن إيقاف تشغيل علامة UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE ببساطة عن طريق إلغاء تحديد الخيار "عرض الإطار الإضافي عند الإيقاف المؤقت" في منطقة إعدادات مشغل iOS.

يا رجل ، لقد حفظت يومي للتو ، شكرًا لنصائح خيار "عرض الإطار الإضافي عند الإيقاف المؤقت"

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

naklow12 picture naklow12  ·  6تعليقات

Duke74 picture Duke74  ·  4تعليقات

michelleran picture michelleran  ·  4تعليقات

laijingfeng picture laijingfeng  ·  6تعليقات

JuGGerNaunT picture JuGGerNaunT  ·  3تعليقات