web-dev-qa-db-fra.com

Xcode 8: Symbole (s) non trouvé (s) pour l'architecture arm64 pour les pods

Après la mise à jour vers Xcode 8, l'application ne s'exécutera pas sur les appareils, mais uniquement sur le simulateur. Les erreurs sont générées pour tous les modules ajoutés au projet:

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_AFNetworkReachabilityManager", referenced from:
      objc-class-ref in FeedViewController.o
  "_OBJC_CLASS_$_TSMessage", referenced from:
      l_OBJC_$_CATEGORY_TSMessage_$_Override in NotificationMessenger.o
      objc-class-ref in NotificationMessenger.o
  "_OBJC_CLASS_$_AFHTTPRequestSerializer", referenced from:
      objc-class-ref in HTTPSessionTask.o
  "_OBJC_CLASS_$_AFJSONRequestSerializer", referenced from:
      objc-class-ref in HTTPSessionTask.o
  "_OBJC_METACLASS_$_SWTableViewCell", referenced from:
      _OBJC_METACLASS_$_MessagesCell in MessagesCell.o
      _OBJC_METACLASS_$_PaymentMethodCell in PaymentMethodCell.o
      _OBJC_METACLASS_$_SwipeTitleCell in SwipeTitleCell.o
  "_OBJC_CLASS_$_FBRequestConnection", referenced from:
      objc-class-ref in FacebookManager.o
  "_OBJC_CLASS_$_SWTableViewCell", referenced from:
      _OBJC_CLASS_$_MessagesCell in MessagesCell.o
      _OBJC_CLASS_$_PaymentMethodCell in PaymentMethodCell.o
      _OBJC_CLASS_$_SwipeTitleCell in SwipeTitleCell.o
  "_OBJC_CLASS_$_FBRequest", referenced from:
      objc-class-ref in FacebookManager.o
  "_OBJC_CLASS_$_AFURLSessionManager", referenced from:
      objc-class-ref in HTTPSessionTask.o
  "_OBJC_CLASS_$_Branch", referenced from:
      objc-class-ref in MyImpactViewController.o
      objc-class-ref in UINavigationController+Activity.o
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_FBSession", referenced from:
      objc-class-ref in FacebookManager.o
      objc-class-ref in ExternalFacebookCommand.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Pour chacun des fichiers, cet avertissement est également émis:

file was built for archive which is not the architecture being linked (arm64)

Les architectures actives conviennent, j'ai essayé de supprimer le dossier de données dérivé, de réinstaller les modules, de configurer Construire les architectures actives uniquement sur OUI et NON, mais rien ne fonctionne.

Mon podfile ressemble à ceci:

platform :ios, '8.0'
workspace 'Purple'
target 'Purple' do
pod 'AFNetworking', '2.6.3'
pod 'SAMKeychain', '~> 1.3'
pod 'TSMessages'
pod 'Facebook-iOS-SDK', '~> 3.23.2'
pod 'SWTableViewCell'
pod 'CardIO'
pod 'Parse'
pod 'PureLayout'
pod 'Branch'
pod 'DZNEmptyDataSet'
end
5
damjandd

Essayez d'effacer les caches XCode:

rm -rf ~/Library/Developer/Xcode/DerivedData/

Effacez les caches CocoaPods et réinstallez les dépendances:

rm -rf "${HOME}/Library/Caches/CocoaPods"
rm -rf "`pwd`/Pods/"
pod update

Enfin, allez dans le projet "Pods" et définissez l'option Construire les architectures actives uniquement sur Non également pour la configuration "Débogage".

Référence https://stackoverflow.com/a/37930840/1773009

8
Marku

"La cible OPN [Debug] remplace le paramètre de construction OTHER_LDFLAGS". C'était le problème principal. Après avoir ajouté $ (hérité) à la nouvelle ligne dans d’autres drapeaux, mon problème a été résolu.

 enter image description here

0
Mohsen mokhtari

Veuillez utiliser le code pod ci-dessous.

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, ‘9.0’
use_frameworks!

target “NoteCheck” do

    pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :tag => ‘4.0.1’
    pod 'AlamofireNetworkActivityIndicator',    '~> 2.0'
    pod 'AlamofireObjectMapper',        '~> 4.0.0'
    pod 'UIActivityIndicator-for-SDWebImage',   '~> 1.2'
    pod 'SVProgressHUD'         ,:git => 'https://github.com/SVProgressHUD/SVProgressHUD.git'
    pod 'Reachability',             '~> 3.2'
    pod 'SwiftyJSON',               '~> 3.0.0'
    pod 'ObjectMapper' ,            '~> 2.0'
    pod 'SDWebImage',               '~> 3.8'

    pod 'SZTextView',               '~> 1.2'
    pod 'TPKeyboardAvoiding',           '~> 1.3'
    pod 'FXBlurView' ,              '~> 1.6.4'
    pod 'AMSmoothAlert',            '~> 1.0'

    pod 'DGElasticPullToRefresh',       '~> 1.1'
end

// Une partie de la bibliothèque cocoapod prend en charge le support IO9.0 minimum. Essayez donc min deploy target to 9.0 et vérifiez toutes les bibliothèques prises en charge par cocoapod Swift3.0. après avoir édité le fichier pod, mettez à jour le pod.

0
Mehul