Facebook-sdk-for-unity: L'application plante au lancement lors de l'utilisation du SDK v7.21.2 sur un appareil iOS 11

Créé le 18 août 2020  ·  8Commentaires  ·  Source: facebook/facebook-sdk-for-unity

Environnement

Décrivez votre environnement de développement ici, en donnant autant de détails que possible. Si vous en avez, assurez-vous d'inclure :

  • Version de l'éditeur Unity : 2018.4.26f1
  • Version du SDK Unity : 7.21.2
  • XCode : 11.6
  • Plateforme et version d'installation : iPad4,4 cours d'exécution [iOS] version 11.3.1

Résultats attendus

Pas de crash

Résultats actuels

Crash du jeu au lancement :

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

La même version fonctionne correctement sur l'appareil avec iOS 12.4.4 et 13.6

Étapes pour reproduire

Il suffit de faire une construction simple en utilisant la version spécifiée

bug

Commentaire le plus utile

Après avoir pris plusieurs heures et essayé plusieurs fois, j'ai trouvé un moyen de résoudre ce problème. J'espère que cela vous aide aussi.
Ajoutez ceci à votre PostProcessBuild :

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

Tous les 8 commentaires

C'est aussi facilement reproductible avec le simulateur iOS :(

J'utilise le script de post-construction suivant comme solution de contournement pour ne pas planter sur iOS 11 :

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());
    }
}

Après avoir pris plusieurs heures et essayé plusieurs fois, j'ai trouvé un moyen de résoudre ce problème. J'espère que cela vous aide aussi.
Ajoutez ceci à votre PostProcessBuild :

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

J'ai eu le même problème avec ios < 12.2 et j'ai trouvé la même solution de contournement avec LD_RUNPATH_SEARCH_PATHS en plus de ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES.

Ce serait formidable d'ajouter une documentation explicite indiquant que celles-ci sont nécessaires si un jeu prend en charge les anciennes versions du système d'exploitation dans la documentation principale et dans le journal des modifications.

Je rencontre également ce "crash de l'application au lancement" avec mon jeu Unity, mais mon iPhone XS a iOS 13.6.1

Unité 2019.4.9f1
SDK Facebook 7.21.2
iOS 13.6.1

=> Crash

Avant la mise à niveau vers FBSDK 7.21.2, le projet avait FBSDK 7.19.0 et le jeu fonctionnait sans plantage.

J'ai essayé:

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

mais j'ai cette erreur lors du téléchargement :

ERREUR ITMS-90206 : « Bundle non valide. Le bundle de 'xxxxx.app/Frameworks/UnityFramework.framework' contient le fichier 'Frameworks' non autorisé."
Le statut de retour d'iTunes Transporter était 1 : ERREUR ITMS-90206 : « Bundle non valide.

Je suppose que ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES provoque cette erreur pour Unity 2019.4.9f1 car lorsque j'ai supprimé la deuxième ligne (LD_RUNPATH_SEARCH_PATHS) et reconstruit, j'ai toujours eu la même erreur de paquet non valide.

Actuellement, je dois revenir à FBSDK 7.19.0 et plus aucun plantage.

J'ai eu le même problème avec FBSDK 8.1.0 aussi.
ios 11 <= crash après la mise à niveau de FBSDK à partir de 7.18.1

Je rencontre également ce "crash de l'application au lancement" avec mon jeu Unity, mais mon iPhone XS a iOS 13.6.1

Unité 2019.4.9f1
SDK Facebook 7.21.2
iOS 13.6.1

=> Crash

Avant la mise à niveau vers FBSDK 7.21.2, le projet avait FBSDK 7.19.0 et le jeu fonctionnait sans plantage.

J'ai essayé:

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

mais j'ai cette erreur lors du téléchargement :

ERREUR ITMS-90206 : « Bundle non valide. Le bundle de 'xxxxx.app/Frameworks/UnityFramework.framework' contient le fichier 'Frameworks' non autorisé."
Le statut de retour d'iTunes Transporter était 1 : ERREUR ITMS-90206 : « Bundle non valide.

Je suppose que ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES provoque cette erreur pour Unity 2019.4.9f1 car lorsque j'ai supprimé la deuxième ligne (LD_RUNPATH_SEARCH_PATHS) et reconstruit, j'ai toujours eu la même erreur de paquet non valide.

Actuellement, je dois revenir à FBSDK 7.19.0 et plus aucun plantage.

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

pour le résoudre, je viens de supprimer mon archive actuelle et de la réarchiver, puis elle a accepté

J'ai trouvé un formulaire de travail s'il vous plaît vérifier ce lien:
https://github.com/facebook/facebook-sdk-for-unity/issues/193#issuecomment -754953304

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

michelleran picture michelleran  ·  6Commentaires

edscodeblenders picture edscodeblenders  ·  4Commentaires

pvalium picture pvalium  ·  6Commentaires

manofspirit picture manofspirit  ·  6Commentaires

Shaitan1805 picture Shaitan1805  ·  6Commentaires