Undefined characters after starchy

I have a problem after updating the crashlytics structure in my project, through the application with the fabric, of course, this is a linker error, the log is lower.

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) 

I tried to fix it in different ways, but I can’t. The ways I tried:

  • Xcode Clean Project Action
  • delete content /Users/losiennik/Library/Developer/Xcode/DerivedData
  • removing and adding Crashlytics.framework and Fabric.framework in Xcode 6.3.1 target Build Phases from Link Binary from Libraries
  • physically delete these framework files and add them again from another project where I installed the frameworks from scratch
  • delete /var/folders content

I made every possible combination of this possible solution, and also tried to start and kill xcode by restarting the OS. Nothing works.

Do you have any other ideas? Maybe someone knows where else Xcode stores temporary files that can be used to compile and link processes? Does anyone have similar experience updating this structure?

+7
compilation linker xcode crashlytics
source share
3 answers

It turned out that the cause of the problem was related to another problem that I had. This problem made it impossible for me to register a specific application identifier using the shadow plugin that was previously added to our old organization account. I deleted this application identifier from this old organization, but could not add it to the new organization.

Thanks to the fabric support member, it turned out that my application id was in a weird state on the server side. When this was fixed, my application identifier appeared in our organization account, and then the fabric plugin uploaded the correct version of Crashlytics.framework file. After that, I have no problem with the Apple Mach-O Linker Error related to Crashlytics binary files.

To summarize, if you just had a problem described above, or a problem with adding an application identifier, write directly to the fabric support and don't waste your time.

Thanks to the fabric team :)!

+3
source share

If you decide not to use CocoaPods, you obviously used the second option by putting Run Script inside the build phases:

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

Running Script will copy the files:

  • Crashlytics.framework
  • Fabric.framework

To the directory of your project, but sometimes this is not enough, and you also need to copy / link 2 frameworks to your Xcode project.

Importing two frameworks is possible (prior to the copy procedure described above), but Xcode needs a link to them.

After that compiles.

0
source share

This problem came to me when I updated Xcode. It was fixed after uninstalling and installing a newer version, not an update.

0
source share

All Articles