Facebook-sdk-for-unity: App stĂŒrzt beim Start ab, wenn SDK v7.21.2 auf einem iOS 11-GerĂ€t verwendet wird

Erstellt am 18. Aug. 2020  Â·  8Kommentare  Â·  Quelle: facebook/facebook-sdk-for-unity

Umgebung

Beschreiben Sie hier Ihre Entwicklungsumgebung und geben Sie so viele Details wie möglich an. Wenn Sie sie haben, stellen Sie sicher, dass Sie Folgendes angeben:

  • Unity-Editor-Version: 2018.4.26f1
  • Unity SDK-Version: 7.21.2
  • XCode: 11.6
  • Installationsplattform und Version: iPad4,4 mit [iOS] Version 11.3.1

erwartete Ergebnisse

Kein Unfall

TatsÀchliche Ergebnisse

Spielabsturz beim Start:

dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /var/containers/Bundle/Application/6A540FA0-A178-4762-BE4D-1A32AC021D5C/XX.app/XX Reason: image not found

Der gleiche Build lÀuft auf einem GerÀt mit iOS 12.4.4 und 13.6

Schritte zum Reproduzieren

Machen Sie einfach einen einfachen Build mit der angegebenen Version

bug

Hilfreichster Kommentar

Nachdem ich viele Stunden gebraucht und viele Male versucht habe, habe ich einen Weg gefunden, dieses Problem zu lösen. Hoffe es hilft dir auch.
FĂŒgen Sie dies zu Ihrem PostProcessBuild hinzu:

// Fixed Facebook SDK 7.21.2 issue for iOS < 12.2
project.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");

Alle 8 Kommentare

Es ist auch mit dem iOS-Simulator leicht reproduzierbar :(

Ich verwende das folgende Post-Build-Skript als Problemumgehung, um unter iOS 11 nicht abzustĂŒrzen:

public class FacebookCrashIOS11 : ScriptableObject
{
    [PostProcessBuild]
    public static void OnPostProcess(BuildTarget buildTarget, string buildPath)
    {
        // Only for iOS
        if (buildTarget != BuildTarget.iOS)
        {
            return;
        }

        string projectPath = PBXProject.GetPBXProjectPath(buildPath);
        PBXProject project = new PBXProject();

        // Read.
        project.ReadFromString(File.ReadAllText(projectPath));
        string targetGUID = project.GetUnityMainTargetGuid();

        project.SetBuildProperty(targetGUID, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES"); // Facebook 7.21.2 crashed on iOS 11.0 without this line

        // Write.
        File.WriteAllText(projectPath, project.WriteToString());
    }
}

Nachdem ich viele Stunden gebraucht und viele Male versucht habe, habe ich einen Weg gefunden, dieses Problem zu lösen. Hoffe es hilft dir auch.
FĂŒgen Sie dies zu Ihrem PostProcessBuild hinzu:

// Fixed Facebook SDK 7.21.2 issue for iOS < 12.2
project.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");

Ich hatte das gleiche Problem mit ios < 12.2 und fand die gleiche Problemumgehung mit LD_RUNPATH_SEARCH_PATHS zusÀtzlich zu ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES.

Es wĂ€re toll, in der Hauptdokumentation und im Änderungsprotokoll eine explizite Dokumentation hinzuzufĂŒgen, dass diese erforderlich sind, wenn ein Spiel Ă€ltere Betriebssystemversionen unterstĂŒtzt.

Ich erlebe auch diese "App stĂŒrzt beim Start ab" mit meinem Unity-Spiel, aber mein iPhone XS hat iOS 13.6.1

Einheit 2019.4.9f1
Facebook-SDK 7.21.2
iOS 13.6.1

=> Absturz

Vor dem Upgrade auf FBSDK 7.21.2 hatte das Projekt FBSDK 7.19.0 und das Spiel funktionierte ohne Absturz.

Ich habe es versucht:

project.SetBuildProperty(targetId, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
project.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(vererbt) @executable_path/Frameworks");

habe aber beim Hochladen diesen Fehler bekommen:

FEHLER ITMS-90206: "UngĂŒltiges Bundle. Das Bundle unter 'xxxxx.app/Frameworks/UnityFramework.framework' enthĂ€lt die unzulĂ€ssige Datei 'Frameworks'."
RĂŒckgabestatus von iTunes Transporter war 1: FEHLER ITMS-90206: "UngĂŒltiges Bundle. Das Bundle unter 'xxxxx.app/Frameworks/UnityFramework.framework' enthĂ€lt die unzulĂ€ssige Datei 'Frameworks'."

Ich vermute, dass ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES diesen Fehler fĂŒr Unity 2019.4.9f1 verursacht, denn als ich die zweite Zeile (LD_RUNPATH_SEARCH_PATHS) entfernt und neu erstellt habe, habe ich immer noch denselben Fehler mit ungĂŒltigem Bundle erhalten.

Derzeit muss ich zu FBSDK 7.19.0 zurĂŒckkehren und es gibt keinen Absturz mehr.

Ich hatte auch das gleiche Problem mit FBSDK 8.1.0.
ios 11 <= Absturz nach dem Upgrade von FBSDK von 7.18.1

Ich erlebe auch diese "App stĂŒrzt beim Start ab" mit meinem Unity-Spiel, aber mein iPhone XS hat iOS 13.6.1

Einheit 2019.4.9f1
Facebook-SDK 7.21.2
iOS 13.6.1

=> Absturz

Vor dem Upgrade auf FBSDK 7.21.2 hatte das Projekt FBSDK 7.19.0 und das Spiel funktionierte ohne Absturz.

Ich habe es versucht:

project.SetBuildProperty(targetId, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "YES");
project.AddBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(vererbt) @executable_path/Frameworks");

habe aber beim Hochladen diesen Fehler bekommen:

FEHLER ITMS-90206: "UngĂŒltiges Bundle. Das Bundle unter 'xxxxx.app/Frameworks/UnityFramework.framework' enthĂ€lt die unzulĂ€ssige Datei 'Frameworks'."
RĂŒckgabestatus von iTunes Transporter war 1: FEHLER ITMS-90206: "UngĂŒltiges Bundle. Das Bundle unter 'xxxxx.app/Frameworks/UnityFramework.framework' enthĂ€lt die unzulĂ€ssige Datei 'Frameworks'."

Ich vermute, dass ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES diesen Fehler fĂŒr Unity 2019.4.9f1 verursacht, denn als ich die zweite Zeile (LD_RUNPATH_SEARCH_PATHS) entfernt und neu erstellt habe, habe ich immer noch denselben Fehler mit ungĂŒltigem Bundle erhalten.

Derzeit muss ich zu FBSDK 7.19.0 zurĂŒckkehren und es gibt keinen Absturz mehr.

ich habe auch
Return status of iTunes Transporter was 1: ERROR ITMS-90206: "Invalid Bundle. The bundle at 'xxxxx.app/Frameworks/UnityFramework.framework' contains disallowed file 'Frameworks'."

Um es zu lösen, habe ich gerade mein aktuelles Archiv gelöscht und es erneut archiviert, dann hat es akzeptiert

Ich habe ein funktionierendes Formular gefunden, bitte ĂŒberprĂŒfen Sie diesen Link:
https://github.com/facebook/facebook-sdk-for-unity/issues/193#issuecomment -754953304

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen