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