J'ai installé FBSDK avec Cocoapods mais je ne peux pas l'importer dans mon fichier AppDelegate.Swift pour une raison quelconque. Le kit FBSDK apparaît dans mon projet Xcode, donc je pense qu'il devrait fonctionner.
Je ne suis en aucun cas un développeur iOS, j'essaie simplement d'écrire un simple plugin natif pour Flutter SDK. Quelqu'un a une idée?
- Voici à quoi ressemble le fichier pod -
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
if ENV['FLUTTER_FRAMEWORK_DIR'] == nil
abort('Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework')
end
target 'Runner' do
use_frameworks!
# Pods for Runner
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
# Flutter Pods
pod 'Flutter', :path => ENV['FLUTTER_FRAMEWORK_DIR']
if File.exists? '../.flutter-plugins'
flutter_root = File.expand_path('..')
File.foreach('../.flutter-plugins') { |line|
plugin = line.split(pattern='=')
if plugin.length == 2
name = plugin[0].strip()
path = plugin[1].strip()
resolved_path = File.expand_path("#{path}/ios", flutter_root)
pod name, :path => resolved_path
else
puts "Invalid plugin specification: #{line}"
end
}
end
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
--- EDIT ---
Je reçois le message d'erreur suivant: FBSDKCoreKit.framework: No such file or directory
. Lorsque j'ouvre le dossier Frameworks dans xCode, tous les noms de fichiers sont en rouge: Mais ce dossier exact dans le Finder est vide . Donc je suppose que c'est pourquoi l'erreur s'affiche. La question est de savoir comment résoudre ce problème ...
C'est ce que mon embedded binaries
et linked frameworks and libraries
ressemble au projet:
Je suppose naïvement que vous n'avez pas use_frameworks!
en vous Podfile
. Si c'est vrai, vous avez deux façons de procéder à partir d'ici:
Dans ton Runner-Bridging-Header.h
ajouter #import <FBSDKCoreKit/FBSDKCoreKit.h>
, retirer import FBSDKCoreKit
de AppDelegate.Swift
et continuez simplement à écrire le code.
Ajouter use_frameworks!
dans votre Podfile
et exécutez pod install
encore. Cela pourrait entraîner d'autres problèmes, mais si cela fonctionne, je le suggère.
Ouvrez-vous le .xcodeproj
ou la .xcworkspace
? Assurez-vous que c'est l'espace de travail chaque fois que vous installez un cocoapod
Si vous utilisez cocoapods
, il aurait dû générer un *.xcworkspace
fichier pour vous. Ouvrez plutôt ce fichier pour que votre projet puisse voir le FBSDK
installé et y faire référence.
Pourquoi ne pas simplement utiliser les pods Swift? -
pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'
puis importez comme d'habitude, comme
import FBSDKLoginKit
import FacebookLogin
Une fois cela fait, faites un nettoyage et construisez (command/⌘ + Shift + K) et Build (command/⌘ + B). Assurez-vous que vous utilisez le .xcworkspace
fichier pour ouvrir le projet.
Plus d'informations sur Swift FBSDK ici .
Une fois que vous avez utilisé les modules Swift, vous devriez voir ces cadres dans votre projet.
Si vous continuez à voir l'erreur, "Nettoyez le dossier de construction" à l'aide de command + shift + alt + K.
Lorsque vous installez vos pods, vous devez d'abord créer votre application. Ensuite, vos importations cessent d'afficher des erreurs.
Nettoyez d'abord le répertoire de votre projet. Et ajoutez $ (hérité) dans le chemin de recherche du framework dans les paramètres de build.
Lorsque vous importez le FBSDKCoreKit.framework
etc. sera exécuté dans le [CP] Embed Pods Frameworks
phase de construction lors de l'utilisation de CocoaPods, vous devez supprimer les références à ces frameworks dans le Embed Frameworks
phase de construction.
CocoaPods ne créera pas ces références, je suppose que vous avez essayé d'autres façons d'importer les frameworks Facebook, et ces liens ont été créés au cours du processus. Vous pouvez également supprimer les références aux frameworks Facebook dans le dossier Frameworks de votre App-Project (celles de votre capture d'écran écrites en rouge, pas celles du Pods-Project!), Mais conservez le Pods_Runner.framework
Là.
D'après ce que je peux dire, votre Linked Frameworks and Libraries
la section semble valide.
Si cela ne fonctionne toujours pas, je vous conseille de créer un nouveau projet Xcode avec un Podfile vide, et d'inclure uniquement les frameworks Facebook via CocoaPods. L'importation du Facebook-SDK dans l'AppDelegate devrait alors fonctionner, sinon je peux partager un exemple de projet avec vous. Ensuite, vous devriez vérifier votre configuration et vos phases de construction, peut-être que quelque chose ne va pas. Si vous ne parvenez toujours pas à résoudre le problème, vous devrez probablement recréer votre projet xcode et réimporter tous vos fichiers.
Sans un exemple de projet qui reproduit l'erreur, c'est le meilleur conseil que je puisse donner.
Bonne chance! :)
Les solutions ci-dessus pour le chemin de recherche d'en-tête devraient fonctionner. Si vous êtes trop paresseux pour y aller. Copiez le contenu du podfile, supprimez tous les pods, installez le pod, puis rétablissez votre podfile, réinstallez le pod .... Devrait fonctionner ;-)
Commencez par nettoyer votre projet à l'aide de Command + Shift + K
puis fermez le projet et supprimez le dossier pods
et le pod.lock
fichier et votre .xcworkspace
fichier. Exécutez ensuite pod install
et voyez si cela résout le problème.