web-dev-qa-db-fra.com

Symboles non définis pour l'architecture x86_64 dans Xcode après la mise à jour de Firebase

J'ai mis à jour FirebaseUI vers la version la plus récente, ainsi que TwitterCore 3.0.0 (version 2.8.0), depuis que j'ai cette erreur de compilation dans Xcode:

Undefined symbols for architecture x86_64:
  "_TWTRIdentifierForAdvertising", referenced from:
      +[TWTRCardConfiguration deviceID] in TwitterKit(TWTRCardConfiguration.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Je suis actuellement revenu à la version précédente de TwitterCore bien que cela ne soit pas explicitement écrit dans mon fichier Podfile. J'ai écrit pod 'TwitterCore', '~>2.8.0'

14
Ronen

J'ai résolu le problème TwitterCore> 3.0.0 pour FirebaseUI> 3.0.0 ou le module de mise à jour.

pod 'FirebaseUI'
pod 'TwitterCore', '<=2.8.0' # fixed

Bonne chance

9
Ar No

J'ai remarqué dans le podfile Firebase DatabaseExample inclus avec quickstart-ios que 'FirebaseUI' était renommé 'FirebaseUI/Database'. Je l'ai ajouté au podfile avec le nom correct et tout semble être correct.

5
ericl

Si vous êtes toujours aux prises avec cette erreur, voici la solution. J'ai remarqué que certaines des solutions ci-dessus ne résolvent pas le problème du paquet Twitter, car elles suppriment simplement la référence, ce qui n'est pas une approche correcte pour les personnes qui souhaitent utiliser la fonctionnalité Twitter.

Pour le moment, la version FirebaseUI est 4.1.1 et TwitterKit> = 2.4 satisfait à ses exigences, mais selon mon test, la dernière version 2. * (qui est maintenant 2.8.1) génère une erreur avec une référence de symbole non définie.

J'ai vérifié que FirebaseUI 4.1.1 fonctionnait parfaitement avec TwitterKit précédent 2.7. Ma solution consiste donc simplement à obliger le cocoapod à installer cette version.

Suivez la procédure:  

1) Ajoutez ces deux instances à votre fichier Podfile. (vous pouvez ajouter de manière sélective les sous-parties de FirebaseUI si vous ne voulez pas toutes les installer).

pod 'TwitterKit' , '2.7' 

pod 'FirebaseUI', '~> 4.0'

2) Run:

pod update
3
wstejka

Je l'ai résolu en utilisant:

# Uncomment this line to define a global platform for your project
platform :ios, '9.0'
# Uncomment this line if you're using Swift
use_frameworks!

target 'app name' do

#pod 'FirebaseUI'
pod 'FirebaseUI/Database'
pod 'Firebase/Storage'

post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['Swift_VERSION'] = '3.0'
end
end
end
end

Comme vous pouvez le constater, j’ai commenté FirebaseUI et utilisé FirebaseUI/Database pour la base de données et Firebase/Storage pour le stockage.

2
David Seek

Ce serait un exemple de la façon de définir la version du fichier podfile.

Exemple:

cible 'Votre_projet' do

pod 'Firebase', '~> 1.0'

fin

0

Si vous l’utilisez pod dans testing . Vous devez ajouter un pod dans la cible MyAppTests.

par exemple:

platform :ios, '9.0'

target 'MyApp' do
  use_frameworks!

  pod 'TwitterCore', '~>3.0.0'

  target 'MyAppTests' do
    inherit! :search_paths

    pod 'TwitterCore', '~>3.0.0'

  end

end
0
Roma Darvish

Dans mon cas, il a simplement commenté ceci:

# pod 'FirebaseUI/Twitter'

0
vfxdrummer

Dans Xcode 9, Swift 3, Firebase 

-> _TWTRIdentifierForAdvertising ", référencé

Cela m'aide:

ajoutez d’abord dans votre Podfile: le pod 'FirebaseUI', '~> 4.0'

après: pod update

0
Steffen