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'
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
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.
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
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.
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
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
Dans mon cas, il a simplement commenté ceci:
# pod 'FirebaseUI/Twitter'
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