Using Library at Xcode - ios

I had download Xenofex-MultiColumnTableViewForiOS-0b3fa88 library and plan to use it in my iOS project.
May i know what is step to import and link this library to my project? Just drag and drop the unzipped folder to my project?
I had drag the needed file to my project and try to run it.
The compiler prompt me error below
Undefined symbols for architecture i386:
"_OBJC_METACLASS_$_CALayer", referenced from:
_OBJC_METACLASS_$_EWHeaderHighlightLayer in EWHeaderHighlightLayer.o
"_OBJC_CLASS_$_CALayer", referenced from:
_OBJC_CLASS_$_EWHeaderHighlightLayer in EWHeaderHighlightLayer.o
objc-class-ref in EWMultiColumnTableView.o
"_OBJC_CLASS_$_CATransaction", referenced from:
objc-class-ref in EWMultiColumnTableView.o
"_kCATransactionDisableActions", referenced from:
-[EWMultiColumnTableView highlightColumn:] in EWMultiColumnTableView.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Can anyone advice on this?

By the look of the linker errors, you need to add the QuartzCore framework to your project. This is where the CALayer class is implemented, along with a load of other things.
There are instructions on how to do this in the top-rated answer to this SO question: Adding quartzcore to xcode 4 for iOS.

Related

Undefined symbols for architecture x86_64 in iOS project

I'm trying to use this Spotify SDK integration for React Native in my iOS project.
I'm getting the following error:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_SPTAudioStreamingController", referenced from:
objc-class-ref in libRCTSpotify.a(RCTSpotify.o)
"_OBJC_CLASS_$_SPTAuth", referenced from:
objc-class-ref in libRCTSpotify.a(RCTSpotify.o)
"_OBJC_CLASS_$_SPTDiskCache", referenced from:
objc-class-ref in libRCTSpotify.a(RCTSpotify.o)
"_OBJC_CLASS_$_SPTRequest", referenced from:
objc-class-ref in libRCTSpotify.a(RCTSpotify.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
The section on Architectures in the RCTSpotify.xcodeproj in the Libraries folder looks like all the others, I can't find anything about x86_64, and this error has never previously appeared in the project.
Scroll up and check and see if there's another error right before that says something like this:
warning: skipping file '[FOLDER_PATH]/node_modules/rn-spotify-sdk/ios/external/SpotifySDK' (unexpected file type 'folder' in Frameworks & Libraries build phase)
If that's the case, you did like me and followed the README directly. What you actually want to do is add three frameworks from within that folder, not just the SpotifySDK folder.
They are SpotifyMetadata.framework, SpotifyAuthentication.framework, and SpotifyAudioPlayer.framework. If you add those three in, then it should work. They within the /node_modules/rn-spotify-sdk/ios/external/SpotifySDK/ folder.
Should end up looking like this:
Maybe the SDK you are trying to use is built for real device not simulator. Please, check.

ld cannot find some of my symbols

I am using Xcode 6.1 with iOS 8.1 SDK to develop an iOS application.
SailracerEngine class imports SmoothSpeedTimeSeries and SmoothCourseTimeSeries classes to implement some of its functionality. Both are subclasses of SmoothTimeSeries. When I try to build my project, linker fails with the following error:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_SmoothCourseTimeSeries", referenced from:
objc-class-ref in SailracerEngine.o
"_OBJC_CLASS_$_SmoothSpeedTimeSeries", referenced from:
objc-class-ref in SailracerEngine.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Other module in my code is using SmoothSpeedTimeSeries and SmoothCourseTimeSeries without any linker errors. How can this issue be solved?
The implementation file for class SmoothCourseTimeSeries has not been added to the Xcode Target.
If you click on the implementation file you should be able to see which Xcode targets it belongs to using the file inspector on the right.

Apple Mach-O for libAppLovinSdk.a in cocos2d for iPhone

I am trying to display AppLovin sdk in my cocos2d project in Xcode and I'm currently unable to debug this Apple Mach-O error as described below.
Undefined symbols for architecture i386:
"_CMTimeGetSeconds", referenced from:
-[ALVideoViewController timeLeft] in libAppLovinSdk.a(ALVideoViewController.o)
-[ALVideoViewController percentViewed] in libAppLovinSdk.a(ALVideoViewController.o)
"_CMTimeMakeWithSeconds", referenced from:
-[ALVideoViewController createCountdownTimeObserver] in libAppLovinSdk.a(ALVideoViewController.o)
"_MPMoviePlayerPlaybackDidFinishNotification", referenced from:
___50-[ALInterstitialViewController prepareForVideoAd:]_block_invoke in libAppLovinSdk.a(ALInterstitialViewController.o)
"_MPMoviePlayerPlaybackDidFinishReasonUserInfoKey", referenced from:
___53-[ALInterstitialViewController moviePlayerDidFinish:]_block_invoke in libAppLovinSdk.a(ALInterstitialViewController.o)
"_MPMoviePlayerPlaybackStateDidChangeNotification", referenced from:
___50-[ALInterstitialViewController prepareForVideoAd:]_block_invoke in libAppLovinSdk.a(ALInterstitialViewController.o)
"_OBJC_CLASS_$_MPMoviePlayerController", referenced from:
objc-class-ref in libAppLovinSdk.a(ALInterstitialViewController.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I went to build phases -> add other -> Selected libAppLovinSdk.a file from the finder displayed.
I also set the value of Build Active Architectures only to NO and removed arm64 from architectures. There is no i386 architecture.
You are missing the CoreMedia and MediaPlayer frameworks.
(I found this out by Googling for CMTimeGetSeconds and MPMoviePlayerPlaybackDidFinishNotification and seeing what section of the Apple docs got hits, however the CM and MP prefixes should be enough to tell you).

AWS S3 SDK Linker issue

Hi I'm using the AWS SDK for a sample application. Specifically I', trying to implement an S3 bucket and object view. I've added the necessary classes, headers, and frameworks. In addition I've checked the build settings and all necessary frameworks are linked. These are the errors I get.
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_AmazonClientManager", referenced from:
objc-class-ref in AddBucketViewController.o
objc-class-ref in AddObjectViewController.o
objc-class-ref in BucketList.o
objc-class-ref in ObjectListing.o
objc-class-ref in ObjectViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I am one of the maintainers of the AWS SDK for iOS.
The AmazonClientManager class is something we include our samples, so it sounds like you've copied some code from our samples into your project. You'll want to make sure those files are added to the Compile Sources of the Build Phases for your project as shown in the screen shot below.

Project build fails after adding MonkeyTalk iOS agent to target build in XCode

I have added the iOS agent to a project in XCode 4.5. The build fails with the following errors:
Undefined symbols for architecture i386:
"_MPMoviePlayerPlaybackStateDidChangeNotification", referenced from:
+[MPMovieView(MTReady) load] in libMonkeyTalkMediaPlayer-1.0.24.a(MPMovieView+MTReady.o)
"_OBJC_CLASS_$_MPFullScreenTransportControls", referenced from:
l_OBJC_$_CATEGORY_MPFullScreenTransportControls_$_MTDisable in libMonkeyTalkMediaPlayer-1.0.24.a(MPMovieView+MTReady.o)
"_OBJC_CLASS_$_MPFullScreenVideoOverlay", referenced from:
l_OBJC_$_CATEGORY_MPFullScreenVideoOverlay_$_MTDisable in libMonkeyTalkMediaPlayer-1.0.24.a(MPMovieView+MTReady.o)
"_OBJC_CLASS_$_MPMovieView", referenced from:
anon in libMonkeyTalkMediaPlayer-1.0.24.a(MPMovieView+MTReady.o)
l_OBJC_$_CATEGORY_MPMovieView_$_MTReady in libMonkeyTalkMediaPlayer-1.0.24.a(MPMovieView+MTReady.o)
"_OBJC_CLASS_$_MPSwipableView", referenced from:
l_OBJC_$_CATEGORY_MPSwipableView_$_MTDisable in libMonkeyTalkMediaPlayer-1.0.24.a(MPMovieView+MTReady.o)
"_OBJC_CLASS_$_MPTransportButton", referenced from:
l_OBJC_$_CATEGORY_MPTransportButton_$_MTDisable in libMonkeyTalkMediaPlayer-1.0.24.a(MPMovieView+MTReady.o)
"_OBJC_CLASS_$_MPVideoBackgroundView", referenced from:
l_OBJC_$_CATEGORY_MPVideoBackgroundView_$_MTDisable in libMonkeyTalkMediaPlayer-1.0.24.a(MPMovieView+MTReady.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Can someone help me out. The build without the iOS agent builds fine.
Thanks
Sounds like you need to link in MediaPlayer.framework.
If you are not using the MediaPlayer framework already, you probably do not need to link in the libMonkeyTalkMediaPlayer-1.0.24.a library - you should only need the libMonkeyTalk-1.0.24.a library.
As you probably know already, the basic instructions for linking the libMonkeyTalk-1.0.xx.a library are here.

Resources