Xcode 8: Символ (ы) не найдены для архитектуры arm64 для стручков
После обновления до Xcode 8 приложение не будет работать на устройствах, только на симуляторе. Ошибки генерируются для всех модулей, добавленных в проект:
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)
Для каждого из файлов также выдается это предупреждение:
file was built for archive which is not the architecture being linked (arm64)
С активными архитектурами все в порядке, я попытался удалить папку производных данных, переустановить модули, установить для параметра "Создать активные архитектуры только значение ДА и НЕТ", но ничего не работает.
Мой Подфайл выглядит так:
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
3 ответа
Попробуйте очистить кеши XCode:
rm -rf ~/Library/Developer/Xcode/DerivedData/
Очистите кэши CocoaPods и переустановите зависимости:
rm -rf "${HOME}/Library/Caches/CocoaPods"
rm -rf "`pwd`/Pods/"
pod update
Наконец, перейдите к проекту "Pods" и установите для параметра "Build Active Architectures Only" значение "No" также для конфигурации "Debug".
Ссылка /questions/19819585/afnetworking-ne-budet-kompilirovatsya/19819590#19819590
Msgstr "Цель OPN [Debug] переопределяет настройку сборки OTHER_LDFLAGS". Это было главной проблемой. После добавления $(унаследованного) в новую строку в другие флаги компоновщика решена моя проблема.
Пожалуйста, используйте код ниже.
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
// Некоторые из библиотек cocoapod поддерживают минимум поддержки IO9.0. Так что попробуйте минимальную цель развертывания до 9.0 и проверьте все поддерживаемые библиотеки cocoapod swift3.0. после редактирования файла модуля обновите модуль.