Неопределенные символы после обновления крашлитики
У меня проблема после обновления фреймворка сбоев в моем проекте, конечно, через приложение 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 нужна ссылка на них.
Должен скомпилировать нормально потом.