Неопределенные символы после обновления крашлитики

У меня проблема после обновления фреймворка сбоев в моем проекте, конечно, через приложение Fabric, это точно ошибка компоновщика, войдите ниже.

Ld /Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Products/Debug-iphonesimulator/InternalApp.app/InternalApp normal x86_64
cd /Users/losiennik/temp/InternalApp-ios-fork_DONOTREMOVE
export IPHONEOS_DEPLOYMENT_TARGET=7.0
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.3.sdk -L/Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Products/Debug-iphonesimulator -F/Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Products/Debug-iphonesimulator -F/Users/losiennik/temp/InternalApp-ios-fork_DONOTREMOVE -filelist /Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Intermediates/InternalApp.build/Debug-iphonesimulator/InternalApp.build/Objects-normal/x86_64/InternalApp.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -lPods-AFNetworking -lPods-ActivateYourSalon -lPods-CocoaLumberjack -lPods-Foursquare-API-v2 -lPods-GZIP -lPods-MBProgressHUD -lPods-MLPAutoCompleteTextField -lPods-MTDates -lPods-UICKeyChainStore -lPods-UIResponder+KeyboardCache -lPods-WYPopoverController -lPods-zipzap -lc++ -lz -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -framework UIKit -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -stdlib=libc++ -mios-simulator-version-min=7.0 -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Intermediates/InternalApp.build/Debug-iphonesimulator/InternalApp.build/InternalApp.app.xcent -framework EventKit -framework MessageUI -framework Crashlytics -framework QuartzCore -framework MapKit -framework CoreLocation -framework CoreGraphics -framework UIKit -framework Foundation -lPods -framework Fabric -Xlinker -dependency_info -Xlinker /Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Intermediates/InternalApp.build/Debug-iphonesimulator/InternalApp.build/Objects-normal/x86_64/InternalApp_dependency_info.dat -o /Users/losiennik/Library/Developer/Xcode/DerivedData/InternalApp-cujowfodrnucvoglpkjjfmshsvrs/Build/Products/Debug-iphonesimulator/InternalApp.app/InternalApp

Undefined symbols for architecture x86_64:
  "_CLSLog", referenced from:
      -[IAPSyncManager processSuccessfulHTTPRequest] in IAPSyncManager.o
      -[IAPLogService writeContentsOfURL:toStream:] in IAPLogService.o
      -[IAPServerObjectMapping serializedPrimaryKeyToJSONStringFrom:forObject:] in IAPServerObjectMapping.o
  "_CLSNSLog", referenced from:
      ___65-[IAPWeekDashboardViewController asyncInternalAppFetchSuccess:failure:]_block_invoke in IAPWeekDashboardViewController.o
      -[IAPSyncManager prepareForSynchronizationInForeground:] in IAPSyncManager.o
      ___50-[IAPSyncManager reenableIdleTimerAfterTwoMinutes]_block_invoke in IAPSyncManager.o
      -[IAPSyncManager reenableIdleTimer] in IAPSyncManager.o
      -[IAPJSONValidator validateJSONWithError:] in IAPJSONValidator.o
      -[IAPSynchronisationRelationship stringWithID:] in IAPSynchronisationRelationship.o
      _POSTDataDictionary in IAPSyncConstants.o
      ...
  "_OBJC_CLASS_$_Crashlytics", referenced from:
      objc-class-ref in IAPSyncManager.o
      objc-class-ref in Crashlytics+Utilities.o
      l_OBJC_$_CATEGORY_Crashlytics_$_Utilities in Crashlytics+Utilities.o
      objc-class-ref in IAPAppDelegate.o
     (maybe you meant: _OBJC_CLASS_$_CrashlyticsPlaceholderStatic)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я пытался исправить это многими способами, но не могу. Способы, которые я попробовал:

  • Xcode Clean действие по проекту
  • удаление содержимого /Users/losiennik/Library/Developer/Xcode/DerivedData
  • удаление и добавление снова Crashlytics.framework а также Fabric.framework в Xcode 6.3.1 цель Build Phases от Link Binary from Libraries
  • физически удаляя эти файлы фреймворка из проекта и снова добавляя их из другого проекта, где я установил фреймворки с нуля
  • удаление /var/folders содержание

Я сделал все возможное сочетание этого возможного решения, а также попытался запустить и убить xcode, а также перезапустить ОС. Ничего не работает

У тебя есть другие идеи? Может кто знает где еще Xcode хранит временные файлы, которые можно использовать при компиляции и компоновке процессов? У кого-нибудь есть подобный опыт при обновлении этого фреймворка?

3 ответа

Решение

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

Благодаря участнику поддержки Fabric оказалось, что мой идентификатор приложения находился в странном состоянии на стороне сервера. Когда это было исправлено, мой идентификатор приложения появился в нашей учетной записи организации, а затем плагин Fabric загрузил правильную версию Crashlytics.framework файл. После этого у меня нет проблем с Apple Mach-O Linker Error связанные с Crashlytics двоичных файлов.

Подводя итог, если только у вас есть проблема, описанная выше, или проблема с добавлением идентификатора приложения, пишите напрямую в службу поддержки Fabric и не теряйте времени.

Спасибо ткани команде:)!

Эта проблема пришла ко мне, когда я обновил Xcode. Исправлено после удаления и установки новой версии, а не обновления.

Если вы решили не использовать CocoaPods, тогда вы, очевидно, использовали 2-й вариант, поместив скрипт запуска в фазы сборки:

./Fabric.framework/run YourUniqueId!#$@#%!#$%@#$^@$3295209582523#@%!#$@%!#%235

Скрипт запуска скопирует файлы:

  • Crashlytics.framework
  • Fabric.framework

В каталог вашего проекта, но иногда этого недостаточно, и вам также нужно скопировать / ссылаться на 2 фреймворка в ваш проект XCode.

Импортировать 2 фреймворка можно (до описанной выше процедуры копирования), но Xcode нужна ссылка на них.

Должен скомпилировать нормально потом.

Другие вопросы по тегам