Décrivez votre environnement de développement ici, en donnant autant de détails que possible. Si vous en avez, assurez-vous d'inclure :
2018.4.23
7.21.0
Je veux pouvoir mettre à jour le SDK Facebook sans résolution de problèmes constante.
XCode construirait proprement le client après la mise à jour du SDK.
XCode ne parvient pas à se construire
Mettre à jour de 7.20.0 -> 7.21.0 et construire sur XCode
Affichage des messages récents
Symbole non défini : __swift_FORCE_LOAD_$_swiftCompatibilityDynamicReplacements
Symbole non défini : __swift_FORCE_LOAD_$_swiftCompatibility50
La solution de contournement actuelle consiste à ajouter use_framework!
au fichier Podfile dans votre projet XCode exporté
La solution de contournement actuelle consiste à ajouter
use_framework!
au fichier Podfile dans votre projet XCode exporté
Merci @KylinChang ça a marché pour moi !
Merci @KylinChang ,
Il serait utile que cela soit ajouté aux notes de version de la version boguée dans la page de téléchargement du SDK.
Wow merci beaucoup, vous devriez certainement ajouter quelque chose au journal des modifications.
Aussi, c'est use_frameworks!
(pluriel)👍
après avoir ajouté use_frameworks ! le projet se construit, mais plante au démarrage avec cette erreur :
[13858:5861271] Error loading /var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework: dlopen(/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework, 265): Library not loaded: @rpath/FBSDKCoreKit.framework/FBSDKCoreKit
Referenced from: /private/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework
Reason: image not found
L'ajouter à la liste des frameworks intégrés n'a pas aidé.
Autre chose que je dois faire ?
Ça ne fonctionne pas pour moi! J'ai ajouté "use_frameworks!" mais la construction échoue toujours. Ai-je besoin d'autre chose ?
après avoir ajouté use_frameworks ! le projet se construit, mais plante au démarrage avec cette erreur :
[13858:5861271] Error loading /var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework: dlopen(/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework, 265): Library not loaded: @rpath/FBSDKCoreKit.framework/FBSDKCoreKit Referenced from: /private/var/containers/Bundle/Application/59B84CDD-B5F4-4BEB-A75B-44DC54DE13E3/myProject.app/Frameworks/UnityFramework.framework/UnityFramework Reason: image not found
L'ajouter à la liste des frameworks intégrés n'a pas aidé.
Autre chose que je dois faire ?
J'obtiens la même chose :/
@KylinChang pouvez-vous partager à quoi ressemble votre fichier pod, s'il vous plaît ?
J'ai pu le construire maintenant, mais il échoue avec la même erreur lors de l'exécution. Quelqu'un a pu le faire fonctionner ?
Même problème ici avec Unity 2019.4.1, Facebook SDK 7.21.1.
L'utilisation de use_frameworks!
n'utilisera que les bibliothèques dynamiques au lieu de celles statiques. Il compile, bien sûr, mais ensuite ces frameworks doivent être intégrés d'une manière ou d'une autre. J'étudie toujours cela, mais dans tous les cas, j'ai besoin que l'espace de travail / projet XCode généré par Unity soit déjà configuré ou notre système CI échouera ...
Devoir modifier manuellement le podfile puis le projet est quelque chose que nous ne devrions pas avoir à faire pour une tâche aussi simple que d'intégrer simplement le SDK Facebook...
Même problème ici avec Unity 2019.4.1, Facebook SDK 7.21.1.
L'utilisation de
use_frameworks!
n'utilisera que les bibliothèques dynamiques au lieu de celles statiques. Il compile, bien sûr, mais ensuite ces frameworks doivent être intégrés d'une manière ou d'une autre. J'étudie toujours cela, mais dans tous les cas, j'ai besoin que l'espace de travail / projet XCode généré par Unity soit déjà configuré ou notre système CI échouera ...Devoir modifier manuellement le podfile puis le projet est quelque chose que nous ne devrions pas avoir à faire pour une tâche aussi simple que d'intégrer simplement le SDK Facebook...
Ici, vous pouvez configurer un script de post-construction simple pour modifier le podfile par programme, je l'utilise dans mon projet et cela fonctionne très bien
Créez un nouveau fichier MonoBehaviour (par exemple : PostProcessBuild_Podfile.cs) et placez-le dans le dossier Assets/Editor
en utilisant System.Collections ;
using System.Linq;
using System.Collections.Generic;
en utilisant UnityEngine ;
en utilisant UnityEditor ;
en utilisant UnityEditor.Callbacks;
en utilisant System.IO;
classe publique PostProcessBuild_Podfile : MonoBehaviour
{
[PostProcessBuildAttribute(45)]//doit être compris entre 40 et 50 pour s'assurer qu'il n'est pas remplacé par la génération Podfile (40) et qu'il est ajouté avant "pod install" (50)
vide statique privé PostProcessBuild_iOS (cible BuildTarget, chaîne buildPath)
{
if (cible == BuildTarget.iOS)
{
var fileName = buildPath + "/Podfile" ;
var endTag = "plateforme :ios, '9.0'";
var lineToAdd = "use_frameworks!";
Debug.Log("PostProcess: Adding use_frameworks! to podfile, this fix for new Facebook SDK");
var txtLines = File.ReadAllLines(fileName).ToList();
txtLines.Insert(txtLines.IndexOf(endTag)+1, lineToAdd);
File.WriteAllLines(fileName, txtLines);
Debug.Log("PostProcess: Adding use_frameworks! to podfile Completed successfully!");
}
}
}
@Khaled-Wolf merci pour le code, c'est vraiment utile, mais même si cela rend le projet compilé, le framework n'est pas automatiquement intégré dans le binaire et l'application se bloque au démarrage comme mentionné par @NumaNumaNuma. J'ai essayé d'intégrer manuellement les frameworks FB à la construction, mais honnêtement, je ne sais pas quel fichier à partir de quel projet je dois ajouter à quelle cible. Toutes mes tentatives ont échoué... Une idée là-dessus ? (et aussi, une idée sur la façon de le faire fonctionner à l'aide d'un script de post-traitement ?)
Je suis revenu à l'utilisation d'une ancienne version du SDK pour le moment (7.19.2 est la plus récente qui n'utilise pas le SDK iOS Swift 7.0).
Je suis également revenu à 7.19.2 en tant que use_frameworks ! Semble avoir causé des problèmes avec les autres pods que j'utilise.
Nous attendrons un SDK Facebook mis à jour pour réessayer :(
@NumaNumaNuma ouais cela semble être la seule option pour le moment, il se compile et s'exécute sans problème ! Merci d'avoir partagé ça!
La solution de contournement actuelle consiste à ajouter "use_frameworks!" vers Podfile ou ajoutez un fichier Swift vide au projet iOS exporté. Le problème est résolu dans https://github.com/facebook/facebook-sdk-for-unity/commit/8fdb57a76d2f5a14c168e91663280d40f274c74c et sera expédié dans la prochaine version.
@KylinChang Et cela fait déjà 6 jours après ce commit, que se passe-t-il? Pourquoi il y a toujours une erreur dans Travis et pourquoi il n'est pas encore sorti ?
@Thaina Si vous êtes pressé, vous pouvez peut-être essayer de le réparer manuellement. Si vous regardez le commit, c'est un très petit changement que vous pourriez essayer de mettre en œuvre vous-même. Ajoutez ce fichier Swift vierge et les 2 propriétés de build à votre projet xcode dans un script post-build dans l'unité. Ça craint d'avoir à le faire manuellement, mais cela pourrait vous faire gagner quelques jours (semaines ?) pendant qu'ils le libèrent.
Ou peut-être qu'ils font des sorties hebdomadaires et ça sortira demain :D
@NumaNumaNuma D'abord, parce que ça ne marche pas
Donc, je ne sais pas vraiment que je fais quelque chose de mal ou que le correctif ne fonctionne pas vraiment en premier lieu. Ou il a une certaine exigence qu'il devrait ou doit être un correctif du package facebook SDK directement ou pour toute autre raison
Deuxièmement, ce n'est pas officiel, donc cela pollue mon code et doit réellement le supprimer à l'avenir lorsque le vrai correctif est sorti, alors j'essaie d'éviter cela. Et c'est pourquoi je n'aime pas faire ça avant de confirmer que facebook ne le publiera pas bientôt
Troisièmement, cela n'a vraiment pas fonctionné, du moins dans l'unité 2020.2
.swift
ne peut pas exister dans le dossier Editor
sinon il ne serait pas copié dans le projet xcode réelALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
sur YES
dans une seule cible principale ne résout pas le problèmeInvalid bundle… contains disallowed file 'frameworks'
Dans mon cas, je dois déplacer ce .swift
extérieur dans le dossier Assets
. Puis fait un processus de construction comme celui-ci
`` C #
string target = proj.GetUnityMainTargetGuid();
string targetName = PBXProject.GetUnityTargetName();
string target = proj.TargetGuidByName(targetName);
////
foreach(var framework in new [] { target,proj.GetUnityFrameworkTargetGuid() })
foreach(var framework in new [] { target })
{
proj.SetBuildProperty(framework, "ENABLE_BITCODE", "NO");
proj.SetBuildProperty(framework, "EMBEDDED_CONTENT_CONTAINS_SWIFT", "YES");
proj.SetBuildProperty(framework, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "NO");
proj.SetBuildProperty(framework, "SWIFT_VERSION", "5.0");
}
''
La solution de contournement actuelle consiste à ajouter "use_frameworks!" vers Podfile ou ajoutez un fichier Swift vide au projet iOS exporté. Le problème est résolu dans 8fdb57a et sera livré dans la prochaine version.
Salut! Pourriez-vous s'il vous plaît dire quand vous allez publier le correctif ?
@KylinChang Le correctif est correct pour les anciennes versions de Unity, mais Unity 2019.3 et les versions plus récentes nécessitent qu'une cible différente soit "réparée":
https://github.com/YousicianGit/facebook-sdk-for-unity/commit/878fc7b73d9a2c3751bb36792f0276cdfacf9495
Je soumettrai le correctif dans un PR bientôt.
Le problème est résolu dans la dernière version
Commentaire le plus utile
@Khaled-Wolf merci pour le code, c'est vraiment utile, mais même si cela rend le projet compilé, le framework n'est pas automatiquement intégré dans le binaire et l'application se bloque au démarrage comme mentionné par @NumaNumaNuma. J'ai essayé d'intégrer manuellement les frameworks FB à la construction, mais honnêtement, je ne sais pas quel fichier à partir de quel projet je dois ajouter à quelle cible. Toutes mes tentatives ont échoué... Une idée là-dessus ? (et aussi, une idée sur la façon de le faire fonctionner à l'aide d'un script de post-traitement ?)