Acapela TTS engine: "Undefined symbols" in XCode for all classes - ios

I'm trying to get started with the Acapela TTS engine for iPhone. I'm using XCode 4 and I've been following these instructions for setup:
http://www.acapela-for-iphone.com/documentation-quick-start-how-to-add-tts-in-your-app
I've added the voice, and added all the necessary files (from the api and license folders) to a group called "TTS", added them to my project's target, and imported them into one of my view controllers in the same manner as the tutorial. However, when I build I get this message:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_AcapelaLicense", referenced from:
objc-class-ref in NavigationViewController.o
"_OBJC_CLASS_$_AcapelaSpeech", referenced from:
objc-class-ref in NavigationViewController.o
objc-class-ref in AcapelaSetup.o
"_AcapelaVoiceName", referenced from:
-[AcapelaSetup SetCurrentVoice:] in AcapelaSetup.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
There are no errors for the files not being found, and when I cmd+click on on the #import statements it takes me to the relevant source code files. So how come XCode thinks the symbols are undefined?

Did you include the files libBabTTS.a and libMobilityStatic.a to your project?

Wild guess : You may check the visibility of headers on your projects build phase.

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.

iOS: Undefined symbols for architecture i386

I'm trying to implement ios-oauthconsumer
but I'm getting this error:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_OAMutableURLRequest", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_OAConsumer", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I tried to add the files following this solution but Xcode re-adds the file to the project. For example:
Any of you knows a way were I can add the files to the "Compile Sources" without having to re-add the file?
I'll really appreciated you help.
Make sure that each source file that needs to be linked is part of the Compile Sources section of your target. You can verify this by selecting your project in Navigator pane (as shown in your screenshot) and expanding the section shown here:
Xcode Compile Sources
You can also verify this by selecting the files and viewing their target membership in the Utilities pane in xcode.
Target Membership

Undefined symbols for architecture arm64: "_OBJC_CLASS_$_MMWormhole"

I am getting following error while build
Undefined symbols for architecture arm64: "_OBJC_CLASS_$_MMWormhole",
referenced from: objc-class-ref in InterfaceController.o ld: symbol(s)
not found for architecture arm64 clang: error: linker command failed with exit
code 1 (use -v to see invocation)
I have installed plugin using
cordova plugin add cordova-plugin-apple-watch
I did not got any libmmwormhole.a file with plugin installation
I had added reference of MMWormhole.h in InterfaceController.m.
In your file InterfaceController, you use the class with a name containing "Wormhole." It's not defined anywhere, so the linker can't put it together. It looks like a library is missing.
Try to find in project MMWormhole or Wormhole if it's in and there is in project files inside Compile Sources than go Project -> Clean Build Folder and delete User/Libraries/Developer/Xcode/Derived Data folder
If it's not -- you need add library with it in your project.

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.

Using Library at Xcode

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.

Resources