web-dev-qa-db-fra.com

Impossible d'importer une dépendance installée avec Cocoapods

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. enter image description here

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: enter image description here 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: enter image description here

13
Bram Vanbilsen
  1. Sélectionnez la cible de votre projet
  2. Accédez aux paramètres de construction.
  3. Rechercher des chemins de recherche d'en-tête.
  4. Ajoutez cette valeur $ (SRCROOT)/Pods avec récursif, puis Xcode résoudra le chemin pour vous.

enter image description here

22
Bryan Norden

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:

  1. Dans ton Runner-Bridging-Header.h ajouter #import <FBSDKCoreKit/FBSDKCoreKit.h>, retirer import FBSDKCoreKit de AppDelegate.Swift et continuez simplement à écrire le code.

  2. 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.

4
S2dent

Ouvrez-vous le .xcodeproj ou la .xcworkspace? Assurez-vous que c'est l'espace de travail chaque fois que vous installez un cocoapod

3
QuantumHoneybees

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.

2
Lawrence Tan

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.

enter image description here

Si vous continuez à voir l'erreur, "Nettoyez le dossier de construction" à l'aide de command + shift + alt + K.

1
Annjawn

Lorsque vous installez vos pods, vous devez d'abord créer votre application. Ensuite, vos importations cessent d'afficher des erreurs.

0
antonin bouchal

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.

0
Bhavesh Patel

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! :)

0
b_ray

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

0
iSaalis

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.

0
Harry Singh