Ошибка сборки Xcode после обновления до Swift 4.2 - неопределенные символы для архитектуры arm64 - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь создать проект Xcode iOS, к которому я не прикасался с июня прошлого года.Я знаю, что были некоторые обновления с пакетами и что-то с Swift 4.2, но я получил множество ошибок.

Во-первых, у меня ошибка загрузки библиотеки, похожая на this , но для RestKit.Я добавил его в файл pods и включил в Link Binary with Libraries.Затем я получил это сообщение об ошибке.

Ld /Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/BuddyV2.app/BuddyV2 normal arm64 (in target: BuddyV2)
    cd /Users/arkwl/Desktop/Workstation/OfficeBuddy/BuddyV2
    export IPHONEOS_DEPLOYMENT_TARGET=11.3
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk -L/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/FirebaseAuth -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/FirebaseCore -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/FirebaseDatabase -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/FirebaseStorage -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/GTMSessionFetcher -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/GoogleUtilities -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/ISO8601DateFormatterValueTransformer -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/JSQMessagesViewController -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/JSQSystemSoundPlayer -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/RKValueTransformers -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/RestKit -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/SOCKit -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/SwiftInstagram -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/SwiftyJSON -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/TransitionKit -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/leveldb-library -F/Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/nanopb -F/Users/arkwl/Desktop/Workstation/OfficeBuddy/BuddyV2/Pods/FirebaseAnalytics/Frameworks -F/Users/arkwl/Desktop/Workstation/OfficeBuddy/BuddyV2/Pods/FirebaseInstanceID/Frameworks -F/Users/arkwl/Desktop/Workstation/OfficeBuddy/BuddyV2/Pods/GoogleAppMeasurement/Frameworks -F/Users/arkwl/Desktop/Workstation/OfficeBuddy/BuddyV2/Carthage/Build/iOS -filelist /Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Intermediates.noindex/BuddyV2.build/Debug-iphoneos/BuddyV2.build/Objects-normal/arm64/BuddyV2.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -Xlinker -rpath -Xlinker @executable_path/Frameworks -miphoneos-version-min=11.3 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Intermediates.noindex/BuddyV2.build/Debug-iphoneos/BuddyV2.build/Objects-normal/arm64/BuddyV2_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -fembed-bitcode-marker -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -Xlinker -add_ast_path -Xlinker /Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Intermediates.noindex/BuddyV2.build/Debug-iphoneos/BuddyV2.build/Objects-normal/arm64/BuddyV2.swiftmodule -ObjC -lc++ -licucore -lsqlite3 -lz -framework CFNetwork -framework FIRAnalyticsConnector -framework FirebaseAnalytics -framework FirebaseAuth -framework FirebaseCore -framework FirebaseCoreDiagnostics -framework FirebaseDatabase -framework FirebaseInstanceID -framework FirebaseStorage -framework Foundation -framework GTMSessionFetcher -framework GoogleAppMeasurement -framework GoogleUtilities -framework ISO8601DateFormatterValueTransformer -framework JSQMessagesViewController -framework JSQSystemSoundPlayer -framework MobileCoreServices -framework RKValueTransformers -framework RestKit -framework SOCKit -framework Security -framework StoreKit -framework SwiftInstagram -framework SwiftyJSON -framework SystemConfiguration -framework TransitionKit -framework leveldb -framework nanopb -framework RestKit -framework LanguageTranslatorV2 -framework SpeechToTextV1 -framework TextToSpeechV1 -framework AssistantV1 -framework PersonalityInsightsV3 -framework Starscream -framework ConversationV1 -framework VisualRecognitionV3 -framework NaturalLanguageUnderstandingV1 -framework DiscoveryV1 -framework ToneAnalyzerV3 -framework NaturalLanguageClassifierV1 -framework Pods_BuddyV2 -Xlinker -dependency_info -Xlinker /Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Intermediates.noindex/BuddyV2.build/Debug-iphoneos/BuddyV2.build/Objects-normal/arm64/BuddyV2_dependency_info.dat -o /Users/arkwl/Library/Developer/Xcode/DerivedData/BuddyV2-gubyodomquayvxabpgpfpalrnftx/Build/Products/Debug-iphoneos/BuddyV2.app/BuddyV2

Undefined symbols for architecture arm64:
  "type metadata for RestKit.JSON", referenced from:
      type metadata accessor for Swift._HashableTypedNativeDictionaryStorage<Swift.String, RestKit.JSON> in SupportViewController.o
      type metadata accessor for (Swift.String, RestKit.JSON) in SupportViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Я попытался взглянуть на SupportViewController.swift, чтобы увидеть, есть ли что-то, что может быть причиной, но не нашел ничего.Также я не знаю, как использовать -v, чтобы увидеть вызовы.Что может быть причиной этого?Раньше проект работал нормально, я думаю, что обновление могло испортить несколько вещей.

Вот суть для контроллера: https://gist.github.com/arkwl/8bcf492cef2e8408852d1be98172b7b7

Я также попытался добавить флаги компоновщика вупомянутый здесь проект pods: https://stackoverflow.com/a/26903572/4672331

Да, я попытался восстановить.

1 Ответ

0 голосов
/ 01 октября 2018

Хм.Здесь есть несколько возможностей, но, скорее всего, кажется, что среда RestKit не создается перед вашим кодом.Вы обязательно должны иметь (как предложено в комментариях) оператор import RestKit в любом исходном коде, который его использует.Но для меня эта ошибка говорит, что она не может найти рамки.Поэтому я бы оглянулся назад на части журналов, которые создавали RestKit, и убедился, что в этом нет ошибок.

В общем, если doco фреймворка не говорит об этом, вам не нужно изменять какие-либо флаги компоновщика.Отсутствие правильных путей к каркасу в путях поиска во фреймворке - более распространенный источник такого рода проблем.

Также вы упомянули более раннюю проблему загрузки образа фреймворка.Обычно это появляется, когда вы пытаетесь загрузить фреймворк во время запуска вашего приложения.Наиболее распространенной причиной является то, что инфраструктура была связана для компиляции, но не скопирована в комплект приложений для развертывания.

Так что я бы посоветовал посмотреть, где создается структура RestKit и как (Carthage или CocoaPods или что-то еще), пути, указанные в настройках пути поиска вашей структуры, а затем, как эта среда добавляется вприложение.

...