web-dev-qa-db-fra.com

Erreur de génération: fichier FBSDKShareKit.h introuvable après la mise à niveau vers Xcode 10

Je construis une application en utilisant réagit native qui utilise FBSDK (react-native-fbsdk). Le tout a fonctionné sans problème, mais après avoir mis à jour mon Xcode de 9.4 à 10.0, je ne suis plus en mesure de construire le projet à cause d'une erreur:

Fichier 'FBSDKShareKit/FBSDKShareKit.h' introuvable

J'ai trouvé un certain nombre de questions qui semblent avoir le même problème et j'ai essayé leur suggestion, mais je ne parviens toujours pas à construire. Choses que j'ai essayées:

  1. Ajout de "~/Documents/FacebookSDK" au chemin de recherche du framework 
  2. Assurez-vous que FBSDK [Core, Share, Login] Kit.framework et libRCTFBSDK.a sont dans le fichier binaire de lien avec les bibliothèques.
  3. Utilisation de "rm -rf ~/Library/Developer/Xcode/DerivedData" pour nettoyer les données, puis à nouveau tenté debuild
  4. Suppression du dossier Frameworks de FacebookSDK, puis ajout

À ce stade, je ne sais pas quoi d'autre je devrais essayer. La chose la plus étrange est que cela fonctionnait avant la mise à jour de Xcode, cela signifie-t-il qu'un changement dans Xcode lui-même a provoqué cela? 

Quelqu'un a une idée à ce sujet ou ont fait face à ce problème?

EDIT: J'ai réussi à construire le projet en modifiant le système de construction de nouveau système de construction en système de construction hérité. L'application fonctionne maintenant (peut-être que quelque chose a changé dans la façon dont les projets de construction Xcode sont incompatibles avec l'actuel fbsdk?)

7
rabbit87

J'ai finalement réussi à construire le projet en paramétrant Build System sur New Build System en ajoutant 

$ (PROJECT_DIR) /../../../ ios

dans les chemins de recherche du cadre (cible) de RCTFBSDK. 

Je suppose que En raison du fait que le fichier .frameworks se trouve dans le dossier ios au lieu de ios/Frameworks, le projet ne peut pas trouver le fichier nécessaire. (Pourquoi ça marche si j'ai utilisé Legacy Build System, ça reste un mystère pour moi).

J'ai testé à la fois l'émulateur et le périphérique; les deux semblent bien fonctionner.

10
rabbit87

Ce qui a fonctionné pour moi:

J'ai créé un dossier Frameworks dans le dossier ios et déplacé tous les fichiers fdsdk dans.

Ensuite, j'ai dû supprimer FBSDK [Core, Share, Login] Kit.framework et libRCTFBSDK.a de "Link Binary with Libraries" (vous y accédez dans votre projet puis construisez des phases), puis ajoutez les 3 FBSDK [Core, Share, Login]. Kit.framework à nouveau à partir du Frameworks dossier + libRCTFBSDK.a

J'ai nettoyé le dossier dérivé

rm -rf ~/Library/Developer/Xcode/DerivedData

Ensuite, la construction a réussi avec le nouveau système de construction.

J'espère que cela peut aider d'autres personnes.

Merci @ rabbit87 et @kalid pour leur aide

4
Pierre

Pour tous ceux qui ont encore des problèmes avec ce problème, ce qui a fonctionné pour moi était non seulement de changer les chemins de recherche de structure du projet principal, mais également depuis le fichier RCTFBSDK.xcodeproj lui-même situé dans les bibliothèques dossier.  enter image description here

0
conchimnon