web-dev-qa-db-fra.com

Les pods de Firebase génèrent des symboles en double pour l'architecture Arm64

J'ai besoin d'aide pour résoudre mes erreurs de symboles dupliqués. Il a commencé après avoir installé Firebase Analytics avec Cocoapodes.

Les symboles dupliqués étaient tous (34) in: /Library/developer/XCode/ArdivedData/appname/build/intermediates.noindex/pods.build/debug-iphoneos/nanopb.build/Objects-normal/arm64/

pb_common 2.o; pb_common.o; pb_encode 2.o; pb_encode.o; pb_decode 2.o et pb_decode.o

Après la mise à jour de Xcode 11.2 et installer FireBase 6.10.0 (était 6.11.0) 5 Les autres erreurs de symboles en double sont apparues dans GoogleTommera:

duplicate symbol '_OBJC_CLASS_$_GULAppEnvironmentUtil' in:
/Users/abnormalsolutions/Library/Developer/Xcode/DerivedData/infood-agjvxotmgtevwrbdluxflosleqao/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/GoogleUtilities.build/Objects-normal/arm64/GULAppEnvironmentUtil 3.o
/Users/abnormalsolutions/Library/Developer/Xcode/DerivedData/infood-agjvxotmgtevwrbdluxflosleqao/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/GoogleUtilities.build/Objects-normal/arm64/GULAppEnvironmentUtil.o

duplicate symbol '_OBJC_METACLASS_$_GULAppEnvironmentUtil' in:
/Users/abnormalsolutions/Library/Developer/Xcode/DerivedData/infood-agjvxotmgtevwrbdluxflosleqao/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/GoogleUtilities.build/Objects-normal/arm64/GULAppEnvironmentUtil 3.o
/Users/abnormalsolutions/Library/Developer/Xcode/DerivedData/infood-agjvxotmgtevwrbdluxflosleqao/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/GoogleUtilities.build/Objects-normal/arm64/GULAppEnvironmentUtil.o

duplicate symbol '_GULNSDataZlibRemainingBytesKey' in:
/Users/abnormalsolutions/Library/Developer/Xcode/DerivedData/infood-agjvxotmgtevwrbdluxflosleqao/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/GoogleUtilities.build/Objects-normal/arm64/GULNSData+zlib 2.o
/Users/abnormalsolutions/Library/Developer/Xcode/DerivedData/infood-agjvxotmgtevwrbdluxflosleqao/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/GoogleUtilities.build/Objects-normal/arm64/GULNSData+zlib.o

duplicate symbol '_GULNSDataZlibErrorKey' in:
/Users/abnormalsolutions/Library/Developer/Xcode/DerivedData/infood-agjvxotmgtevwrbdluxflosleqao/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/GoogleUtilities.build/Objects-normal/arm64/GULNSData+zlib 2.o
/Users/abnormalsolutions/Library/Developer/Xcode/DerivedData/infood-agjvxotmgtevwrbdluxflosleqao/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/GoogleUtilities.build/Objects-normal/arm64/GULNSData+zlib.o

duplicate symbol '_GULNSDataZlibErrorDomain' in:
/Users/abnormalsolutions/Library/Developer/Xcode/DerivedData/infood-agjvxotmgtevwrbdluxflosleqao/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/GoogleUtilities.build/Objects-normal/arm64/GULNSData+zlib 2.o
/Users/abnormalsolutions/Library/Developer/Xcode/DerivedData/infood-agjvxotmgtevwrbdluxflosleqao/Build/Intermediates.noindex/Pods.build/Debug-iphoneos/GoogleUtilities.build/Objects-normal/arm64/GULNSData+zlib.o

ld: 5 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation).

J'ai vu d'autres questions de symboles en double sur SO et j'ai essayé certaines suggestions, mais je n'ose pas trop expérimenter. Supprimer des données dérivées n'aide pas. J'ai aussi essayé de supprimer l'indicateur de liaison -Objc de Autres drapeaux de liaison dans les paramètres de construction, comme suggéré ici sur SO. N'a pas aidé non plus.

Je suis maintenant de retour avec Firebase 6.11.0. Voici mes pods de firebase:

pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'Firebase/Messaging'
pod 'Firebase/AdMob'

S'il vous plaît dites-moi si j'ai besoin de poster plus de détails. Je n'ai vraiment aucune idée de comment gérer cela!

12
Dan Abnormal

Dans Android, lorsqu'il y a un fichier dupliqué, je fais généralement juste un flutter clean Et ces fichiers dupliqués seront partis. Mais dans iPhone flutter clean N'exclut pas les fichiers en double. Une solution de contournement se déroule dans chaque pod et supprimez manuellement les fichiers en double, qui prend beaucoup de temps.

Pour résoudre ce problème, exécutez la commande ci-dessous, puis utilisez le flutter propre à régénérer la pod ou nettoyer.

  1. cd ios/
  2. pod cache clean --all
  3. pod deintegrate --verbose
  4. pod setup --verbose
  5. pod install --verbose
  6. flutter run
0
Paresh Mangukiya