Facebook-sdk-for-unity: Die Facebook-Anmeldung funktioniert nicht auf iOS Unity 2018.4.22f1

Erstellt am 6. Mai 2020  Â·  20Kommentare  Â·  Quelle: facebook/facebook-sdk-for-unity

Als ich also versuchte, mich mit dieser API FB.LogInWithReadPermissions Facebook anzumelden, wird die Webansicht, sobald ich auf "Weiter" klicke, fĂŒr Sekundenbruchteile angezeigt und dann von selbst geschlossen, aber der transparente Bildschirm blockiert immer noch alle Eingaben. Keiner der RĂŒckrufe wird ausgelöst.
Also habe ich es bis zu diesen Codes in der Methode openURLWithSafariViewController im FBSDKLoginKit verfolgt:

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];
  }
}

GrundsĂ€tzlich verwendet Facebook ASWebAuthenticationSession fĂŒr OAuth, aber irgendwie ging das [_authenticationSession start] aus und kehrte nie zurĂŒck, _authenticationSessionCompletionHandler wurde nie ausgelöst und ließ die App hĂ€ngen

Beachten Sie, dass die Facebook-Anmeldung auf Unity 2018.4.21f1 und Àlter einwandfrei funktioniert, aber in 2018.4.22f1 unterbrochen wird.
Irgendeine Idee warum und wie man das beheben kann?

Hilfreichster Kommentar

Ich habe dies "behoben", indem ich einen Post-Build-Prozessor hinzugefĂŒgt habe

#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

Wenn Sie alternativ keinen Postprozessor einrichten möchten, kann das UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE-Flag einfach deaktiviert werden, indem Sie die Option „ZusĂ€tzliches Bild bei Pause rendern“ im iOS-Player-Einstellungsbereich deaktivieren.

Alle 20 Kommentare

Ich habe genau das gleiche Problem. Verwenden von Unity 2019.3.13f1.

Aber ich denke, es funktioniert mit dem Facebook 7.18.1

Das Problem trat bei mir nach dem Upgrade auf 7.19.2 auf.

Bei Unity 2019.3.9f1 ist dasselbe Problem aufgetreten, wir haben gerade auf 7.19.2 aktualisiert

Ich habe genau das gleiche Problem. Verwenden von Unity 2019.3.13f1.

Aber ich denke, es funktioniert mit dem Facebook 7.18.1

Das Problem trat bei mir nach dem Upgrade auf 7.19.2 auf.

Werde Facebook 7.18.1 ausprobieren, wenn das Problem nicht auftritt.

Ich habe genau das gleiche Problem. Verwenden von Unity 2019.3.13f1.
Aber ich denke, es funktioniert mit dem Facebook 7.18.1
Das Problem trat bei mir nach dem Upgrade auf 7.19.2 auf.

Werde Facebook 7.18.1 ausprobieren, wenn das Problem nicht auftritt.

Update: versucht mit v7.18.1 funktioniert. Danke @wagenheimer fĂŒr den Tipp. Ich hoffe, dass dies bald mit der neuesten SDK-Version behoben wird.

Leider bekomme ich genau dieses Problem unter iOS 13.4, Unity 2019.3.13f1, sowohl Facebook SDK 7.19.2 als auch 7.18.1. Clean Facebook SDK-Downgrade auch. @iamAloTheGreat hast du etwas anderes getan, als das SDK herunterzustufen, damit es funktioniert?

es passiert immer noch auf Unity 2018.4.22f1 sowohl auf dem neuesten Facebook SDK als auch auf 7.18.1

Interessant, dass es die Webansicht nur eine Sekunde lang flasht, unabhÀngig davon, ob Safari bei FB angemeldet ist oder nicht.

Ich habe das gleiche Problem, es funktioniert in Unity 2019.3.7f, aber nicht in 2019.3.13f1 und auch nicht in Unity 2020.1. Ich glaube, das ist eher ein Unity- als ein Facebook-Problem.

Ich habe im Unity-Forum geschrieben, bitte schreiben Sie dort auch, damit es sichtbar wird (https://forum.unity.com/threads/facebook-login-broken-in-unity-2019-3-13f1-but-works-in -2019-3-7f1.888502/).

Leider bekomme ich genau dieses Problem unter iOS 13.4, Unity 2019.3.13f1, sowohl Facebook SDK 7.19.2 als auch 7.18.1. Clean Facebook SDK-Downgrade auch. @iamAloTheGreat hast du etwas anderes getan, als das SDK herunterzustufen, damit es funktioniert?

@aVolnov Nein, ich habe gerade versucht, ein Downgrade durchzufĂŒhren. Aber anstatt 7.18.1 direkt in das Hauptprojekt zu importieren, habe ich ein Dummy-Projekt erstellt > 7.18.1 importiert > Facebook SDK-Ordner und PlayServicesResolver im Hauptprojekt gelöscht (wĂ€hrend Unity geschlossen ist) und dann die 2 Ordner aus dem Dummy in das eingefĂŒgt hauptsĂ€chlich. Es funktionierte irgendwie gut sowohl iOS als auch Android.

@iamAloTheGreat Benutzt du immer noch Unity 2019.3.9? Ich habe Ihre Methode auf .13 ausprobiert und es hat keinen Unterschied gemacht, es funktioniert immer noch nicht. Werde versuchen, auf .9 herunterzustufen und zu sehen, ob es funktioniert. Das ist alles 3 Tage, nachdem ich alte Unity-Installationen ausgesondert habe, d'oh.

Kann bestÀtigen, dass das Problem nach dem Downgrade auf 2019.3.9f1 nicht auftritt. Auch beim Downgrade gab es keine Probleme, es musste lediglich der Paketcache aus der Bibliothek gelöscht werden.

@aVolnov Ja, ich bin auf Unity 2019.3.9. Gut zu wissen, dass das Downgrade auf .9 Ihr Problem gelöst hat. Aber ich bin mir nicht sicher, ob das Problem bei Unity oder Facebook liegt.

Ich habe dies "behoben", indem ich einen Post-Build-Prozessor hinzugefĂŒgt habe

#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

Die Lösung von Hex scheint zu funktionieren. WĂŒrden Sie bitte erklĂ€ren, was diese UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE bewirkt?

Ich habe dies "behoben", indem ich einen Post-Build-Prozessor hinzugefĂŒgt habe

#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

Wenn Sie alternativ keinen Postprozessor einrichten möchten, kann das UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE-Flag einfach deaktiviert werden, indem Sie die Option „ZusĂ€tzliches Bild bei Pause rendern“ im iOS-Player-Einstellungsbereich deaktivieren.

Das gleiche Problem mit Unity 2018.4.23f1, also bin ich zurĂŒck zu 2018.4.17f1, jetzt funktioniert alles mit dem neuesten SDK 7.19.2 von Facebook

Problem ist in Unity2019.4.0f1 LTS UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE falsch geholfen

Sieht so aus, als hĂ€tte ich genau das Problem, das @SangCrowdstar beschrieben hat. Die Webansicht wird fĂŒr den Bruchteil einer Sekunde angezeigt, dann schließt sie sich von selbst und mein Spiel hĂ€ngt.

macOS Catalina
Einheit 2018.4.23f1
Facebook Unity-SDK 7.20.0

Verwandtes Problem? => https://github.com/facebook/facebook-sdk-for-unity/issues/289

Ich versuche die Lösung von @mdobele . Werde weiter berichten.

Ich habe dies "behoben", indem ich einen Post-Build-Prozessor hinzugefĂŒgt habe

#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

Wenn Sie alternativ keinen Postprozessor einrichten möchten, kann das UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE-Flag einfach deaktiviert werden, indem Sie die Option „ZusĂ€tzliches Bild bei Pause rendern“ im iOS-Player-Einstellungsbereich deaktivieren.

Das Deaktivieren von "ZusÀtzliches Bild bei Pause rendern" funktioniert bei mir. Facebook-Anmeldung erfolgreich! Danke.

macOS Catalina
Einheit 2018.4.23f1
Facebook Unity-SDK 7.20.0

Ich habe dies "behoben", indem ich einen Post-Build-Prozessor hinzugefĂŒgt habe

#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

Wenn Sie alternativ keinen Postprozessor einrichten möchten, kann das UNITY_SNAPSHOT_VIEW_ON_APPLICATION_PAUSE-Flag einfach deaktiviert werden, indem Sie die Option „ZusĂ€tzliches Bild bei Pause rendern“ im iOS-Player-Einstellungsbereich deaktivieren.

Mann, Sie haben gerade meinen Tag gerettet, danke fĂŒr die Tipps zur Option "ZusĂ€tzliches Bild bei Pause rendern".

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen