I'm missing something minor here in my project using the OpenCV framework from a working demo.
Steps to reproduce:
Download the example app from http://aptogo.co.uk/2011/09/opencv-framework-for-ios/
Create a new Titainum iOS module with titanium create --platform=iphone --type=module --dir=. --name=opencv --id=opencv
Open the XCode project, drag in the OpenCV framework from the FaceTracker app and the other required frameworks.
Add OTHER_LDFLAGS=$(inherited) -framework OpenCV to module.xcconfig
Create new TiUIView and TiUIViewProxy classes named OpencvView and OpencvViewProxy.
In the new OpencvView class, instantiate a UIViewController that uses OpenCV.
The build will build the Titanium module, but when I try to run the module test harness, I get these errors for OpenCV objects:
Undefined symbols for architecture i386:
"_CMSampleBufferGetImageBuffer", referenced from:
-[VideoCaptureViewController captureOutput:didOutputSampleBuffer:fromConnection:] in libopencv.a(VideoCaptureViewController.o)
"_CMSampleBufferGetOutputPresentationTimeStamp", referenced from:
-[VideoCaptureViewController captureOutput:didOutputSampleBuffer:fromConnection:] in libopencv.a(VideoCaptureViewController.o)
"_CMTimeMake", referenced from:
-[VideoCaptureViewController createCaptureSessionForCamera:qualityPreset:grayscale:] in libopencv.a(VideoCaptureViewController.o)
"_CVPixelBufferGetBaseAddress", referenced from:
-[VideoCaptureViewController captureOutput:didOutputSampleBuffer:fromConnection:] in libopencv.a(VideoCaptureViewController.o)
"_CVPixelBufferGetBaseAddressOfPlane", referenced from:
-[VideoCaptureViewController captureOutput:didOutputSampleBuffer:fromConnection:] in libopencv.a(VideoCaptureViewController.o)
"_CVPixelBufferGetHeight", referenced from:
-[VideoCaptureViewController captureOutput:didOutputSampleBuffer:fromConnection:] in libopencv.a(VideoCaptureViewController.o)
"_CVPixelBufferGetPixelFormatType", referenced from:
-[VideoCaptureViewController captureOutput:didOutputSampleBuffer:fromConnection:] in libopencv.a(VideoCaptureViewController.o)
"_CVPixelBufferGetWidth", referenced from:
-[VideoCaptureViewController captureOutput:didOutputSampleBuffer:fromConnection:] in libopencv.a(VideoCaptureViewController.o)
"_CVPixelBufferLockBaseAddress", referenced from:
-[VideoCaptureViewController captureOutput:didOutputSampleBuffer:fromConnection:] in libopencv.a(VideoCaptureViewController.o)
"_CVPixelBufferUnlockBaseAddress", referenced from:
-[VideoCaptureViewController captureOutput:didOutputSampleBuffer:fromConnection:] in libopencv.a(VideoCaptureViewController.o)
"cv::_InputArray::_InputArray(cv::Mat const&)", referenced from:
-[DemoVideoCaptureViewController processFrame:videoRect:videoOrientation:] in libopencv.a(DemoVideoCaptureViewController.o)
"cv::_OutputArray::_OutputArray(cv::Mat&)", referenced from:
-[DemoVideoCaptureViewController processFrame:videoRect:videoOrientation:] in libopencv.a(DemoVideoCaptureViewController.o)
"cv::CascadeClassifier::load(std::string const&)", referenced from:
-[DemoVideoCaptureViewController viewDidLoad] in libopencv.a(DemoVideoCaptureViewController.o)
"cv::CascadeClassifier::CascadeClassifier()", referenced from:
-[DemoVideoCaptureViewController .cxx_construct] in libopencv.a(DemoVideoCaptureViewController.o)
"cv::CascadeClassifier::~CascadeClassifier()", referenced from:
-[DemoVideoCaptureViewController .cxx_destruct] in libopencv.a(DemoVideoCaptureViewController.o)
"cv::Mat::deallocate()", referenced from:
-[VideoCaptureViewController captureOutput:didOutputSampleBuffer:fromConnection:] in libopencv.a(VideoCaptureViewController.o)
-[UIImage(UIImage_OpenCV) CVMat] in libopencv.a(UIImage+OpenCV.o)
-[UIImage(UIImage_OpenCV) CVGrayscaleMat] in libopencv.a(UIImage+OpenCV.o)
"cv::Mat::create(int, int const*, int)", referenced from:
-[UIImage(UIImage_OpenCV) CVMat] in libopencv.a(UIImage+OpenCV.o)
-[UIImage(UIImage_OpenCV) CVGrayscaleMat] in libopencv.a(UIImage+OpenCV.o)
"cv::flip(cv::_InputArray const&, cv::_OutputArray const&, int)", referenced from:
-[DemoVideoCaptureViewController processFrame:videoRect:videoOrientation:] in libopencv.a(DemoVideoCaptureViewController.o)
"cv::resize(cv::_InputArray const&, cv::OutputArray const&, cv::Size, double, double, int)", referenced from:
-[DemoVideoCaptureViewController processFrame:videoRect:videoOrientation:] in libopencv.a(DemoVideoCaptureViewController.o)
"cv::fastFree(void*)", referenced from:
-[VideoCaptureViewController captureOutput:didOutputSampleBuffer:fromConnection:] in libopencv.a(VideoCaptureViewController.o)
-[UIImage(UIImage_OpenCV) CVMat] in libopencv.a(UIImage+OpenCV.o)
-[UIImage(UIImage_OpenCV) CVGrayscaleMat] in libopencv.a(UIImage+OpenCV.o)
"cv::transpose(cv::_InputArray const&, cv::_OutputArray const&)", referenced from:
-[DemoVideoCaptureViewController processFrame:videoRect:videoOrientation:] in libopencv.a(DemoVideoCaptureViewController.o)
"_kCVPixelBufferPixelFormatTypeKey", referenced from:
-[VideoCaptureViewController createCaptureSessionForCamera:qualityPreset:grayscale:] in libopencv.a(VideoCaptureViewController.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I have similar errors. And just changing "build setting" does not help.
Finally, I solved this problem by adding some framework like coreMedia, coreVideo, etc.
These frameworks, however, are not used in my code.
So I guess openCV needs these frameworks. But I don't know why.
Hope this will help:)
I had a similar problem with the default apple llvm compiler on Xcode 4.5.1. Try changing it to gcc (from your build options) and see if this works.
Related
I have just downloaded the gstreamer ios binaries from https://gstreamer.freedesktop.org/data/pkg/ios/1.8.1/. and the gstreamer sdk from https://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/ (which has not been updated for 7 months? -- is there a newer version)?
When I enable the following features in gst_ios_init.h, i am unable to resolve the symbols as follows. Is there a newer SDK? I don't need liveadder or fragmented or editing tools, but the ios compression support seems like it would be useful.
When I enable:
#define GST_IOS_PLUGINS_EFFECTS
I get:
Undefined symbols for architecture x86_64:
"_gst_plugin_liveadder_register", referenced from:
_gst_ios_init in gst_ios_init.o
When I enable:
#define GST_IOS_PLUGINS_CODECS
I get:
Undefined symbols for architecture x86_64:
"_gst_plugin_fragmented_register", referenced from:
_gst_ios_init in gst_ios_init.o
When I enable:
#define GST_IOS_PLUGINS_EDITING
I get:
Undefined symbols for architecture x86_64:
"_gst_plugin_gnonlin_register", referenced from:
_gst_ios_init in gst_ios_init.o
When I enable:
#define GST_IOS_PLUGINS_SYS
I get:
Undefined symbols for architecture x86_64:
"_VTCompressionSessionCompleteFrames", referenced from:
_gst_vtenc_finish in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_VTCompressionSessionCreate", referenced from:
_plugin_init in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-plugin.o)
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_VTCompressionSessionEncodeFrame", referenced from:
_gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_VTCompressionSessionInvalidate", referenced from:
_gst_vtenc_destroy_session in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_VTCompressionSessionPrepareToEncodeFrames", referenced from:
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_VTDecompressionSessionCreate", referenced from:
_gst_vtdec_negotiate in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtdec.o)
"_VTDecompressionSessionDecodeFrame", referenced from:
_gst_vtdec_handle_frame in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtdec.o)
"_VTDecompressionSessionInvalidate", referenced from:
_gst_vtdec_invalidate_session in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtdec.o)
"_VTDecompressionSessionWaitForAsynchronousFrames", referenced from:
_gst_vtdec_push_frames_if_needed in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtdec.o)
"_VTSessionCopyProperty", referenced from:
_gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
_gst_vtenc_session_dump_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_VTSessionCopySupportedPropertyDictionary", referenced from:
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_VTSessionSetProperty", referenced from:
_gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
_gst_vtenc_session_configure_property_double in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
_gst_vtenc_session_configure_property_int in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_kVTCompressionPropertyKey_AllowFrameReordering", referenced from:
_gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_kVTCompressionPropertyKey_AllowTemporalCompression", referenced from:
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_kVTCompressionPropertyKey_AverageBitRate", referenced from:
_gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_kVTCompressionPropertyKey_ExpectedFrameRate", referenced from:
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_kVTCompressionPropertyKey_MaxKeyFrameInterval", referenced from:
_gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration", referenced from:
_gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_kVTCompressionPropertyKey_NumberOfPendingFrames", referenced from:
_gst_vtenc_handle_frame in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_kVTCompressionPropertyKey_ProfileLevel", referenced from:
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_kVTCompressionPropertyKey_Quality", referenced from:
_gst_vtenc_set_quality in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_kVTCompressionPropertyKey_RealTime", referenced from:
_gst_vtenc_set_property in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
_gst_vtenc_set_format in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
"_kVTEncodeFrameOptionKey_ForceKeyFrame", referenced from:
_gst_vtenc_init in GStreamer(libgstapplemedia_a_x86_64_-libgstapplemedia_la-vtenc.o)
Just add VideoToolBox framework to your project.
This is because your gstreamer framework installed is not the same as the tutorial. Copy according gst_ios_init.h and gst_ios_init.m to tutorial project will fix the issue
We're using Fabric with Crashlytics in our Unity Game and after building the iOS project with Unity and starting in Xcode we get about 26 errors:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_FABNetworkResponseHandler", referenced from:
objc-class-ref in Crashlytics(CLSNetworkClient.o)
"_OBJC_CLASS_$_CLSURLSession", referenced from:
objc-class-ref in Crashlytics(CLSNetworkClient.o)
"_OBJC_CLASS_$_FABCertificatePinner", referenced from:
objc-class-ref in Crashlytics(CLSNetworkClient.o)
"_FABGenerateUUID", referenced from:
-[CLSAnalyticsIdentifierGenerator generateSessionFragmentIdentifier] in Crashlytics(CLSAnalyticsIdentifierGenerator.o)
-[CLSAnalyticsIdentifierGenerator generateEventIdentifier] in Crashlytics(CLSAnalyticsIdentifierGenerator.o)
"_FABApplicationShouldReportDeviceIdentifiers", referenced from:
+[CLSAnalyticsMetadataController identifierForAdvertising] in Crashlytics(CLSAnalyticsMetadataController.o)
"_FABHostGetOSVersion", referenced from:
_CLSHostGetNormalizedOSVersion in Crashlytics(CLSHost.o)
"_FABApplicationInstallationSource", referenced from:
+[CLSBetaController isBetaSupported] in Crashlytics(CLSBetaController.o)
-[CLSBetaController appInstallationSource] in Crashlytics(CLSBetaController.o)
"_CLSMachOFormatVersion", referenced from:
_CLSBinaryImageRecordMainExecutable in Crashlytics(CLSBinaryImage.o)
"_FABHostGetNormalizedOSVersion", referenced from:
_CLSBetaToken in Crashlytics(CLSBetaToken.o)
"_OBJC_CLASS_$_FABURLBuilder", referenced from:
objc-class-ref in Crashlytics(CLSBetaController.o)
objc-class-ref in Crashlytics(CLSReportsController.o)
"_FABApplicationGetShortBundleVersion", referenced from:
___CLSContextInitialize_block_invoke26 in Crashlytics(CLSContext.o)
-[CLSBetaController appDisplayVersion] in Crashlytics(CLSBetaController.o)
+[CLSAnalyticsMetadataController bundleShortVersion] in Crashlytics(CLSAnalyticsMetadataController.o)
"_OBJC_CLASS_$_FABNetworkClient", referenced from:
objc-class-ref in Crashlytics(CLSBetaController.o)
objc-class-ref in Crashlytics(CLSAnalyticsNetworkingClient.o)
"_OBJC_CLASS_$_FABMultipartMimeStreamEncoder", referenced from:
objc-class-ref in Crashlytics(CLSAnalyticsNetworkingClient.o)
objc-class-ref in Crashlytics(CLSReportsController.o)
objc-class-ref in Crashlytics(CLSPackageReportOperation.o)
"_FABNetworkMaximumRetryCount", referenced from:
___51-[CLSBetaController loadUpdateWithCompletionBlock:]_block_invoke in Crashlytics(CLSBetaController.o)
-[CLSAnalyticsNetworkingClient transmitLogFilesAtURLs:toURL:withAPIKey:completionHandler:] in Crashlytics(CLSAnalyticsNetworkingClient.o)
"_OBJC_CLASS_$_CLSURLSessionConfiguration", referenced from:
objc-class-ref in Crashlytics(CLSNetworkClient.o)
"_OBJC_CLASS_$_CLSUserDefaults", referenced from:
objc-class-ref in Crashlytics(CLSAnalyticsController.o)
"_FABApplicationGetBundleVersion", referenced from:
___CLSContextInitialize_block_invoke26 in Crashlytics(CLSContext.o)
-[CLSBetaController appBuildVersion] in Crashlytics(CLSBetaController.o)
+[CLSAnalyticsMetadataController bundleVersion] in Crashlytics(CLSAnalyticsMetadataController.o)
"_FABEnumerateByteRangesOfNSDataUsingBlock", referenced from:
-[CLSPackageReportOperation compressData:toPath:] in Crashlytics(CLSPackageReportOperation.o)
"_FABApplicationGetName", referenced from:
-[CLSBetaUpdate promptMessage] in Crashlytics(CLSBetaUpdate.o)
"_FABSettingsAvailableNotification", referenced from:
-[CLSAnalyticsController initWithSessionIdentifier:sessionTimestamp:analyticsRootDirectoryWithURL:betaToken:identifierGenerator:timestampGenerator:metadataController:networkingClient:] in Crashlytics(CLSAnalyticsController.o)
-[CLSBetaController start] in Crashlytics(CLSBetaController.o)
"_FABApplicationGetBundleIdentifier", referenced from:
___30-[Answers startWithBetaToken:]_block_invoke in Crashlytics(Answers.o)
___CLSContextInitialize_block_invoke26 in Crashlytics(CLSContext.o)
-[CLSBetaController appBundleIdentifier] in Crashlytics(CLSBetaController.o)
-[CLSCrashReportingController bundleIdentifier] in Crashlytics(CLSCrashReportingController.o)
-[CLSFileManager pathNamespace] in Crashlytics(CLSFileManager.o)
+[CLSAnalyticsMetadataController bundleIdentifier] in Crashlytics(CLSAnalyticsMetadataController.o)
"_FABHostOSBuildVersion", referenced from:
___20-[Crashlytics start]_block_invoke in Crashlytics(Crashlytics.o)
_CLSHostRecord in Crashlytics(CLSHost.o)
+[CLSAnalyticsMetadataController hostOSVersion] in Crashlytics(CLSAnalyticsMetadataController.o)
"_FABHostModelInfo", referenced from:
___20-[Crashlytics start]_block_invoke in Crashlytics(Crashlytics.o)
_CLSHostRecord in Crashlytics(CLSHost.o)
+[CLSAnalyticsMetadataController hostModel] in Crashlytics(CLSAnalyticsMetadataController.o)
+[CLSAnalyticsMetadataController hostMachine] in Crashlytics(CLSAnalyticsMetadataController.o)
"_FABHostOSDisplayVersion", referenced from:
___20-[Crashlytics start]_block_invoke in Crashlytics(Crashlytics.o)
_CLSHostRecord in Crashlytics(CLSHost.o)
+[CLSAnalyticsMetadataController hostOSVersionName] in Crashlytics(CLSAnalyticsMetadataController.o)
"_FABBuiltinCertificates", referenced from:
+[CLSBetaController pinnnedCertificates] in Crashlytics(CLSBetaController.o)
+[CLSNetworkClient pinner] in Crashlytics(CLSNetworkClient.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Any idea how we can fix that issue? I checked the files in Unity and it seems everything is imported fine.
Fixed it somehow through reimporting the whole Fabric SDK in Unity - so deleting all files regarding Fabric and Crashlytics in the project and then importing Fabric again.
I built my own pod for my own internal usage. The pod spec lint worked fine but when I tried to actually use it, it gave me the following compile errors:
Undefined symbols for architecture armv7:
"___gxx_personality_sj0", referenced from:
_GetConvertedData in libPods.a(ExtAudioFileConvert.o)
"vtable for __cxxabiv1::__class_type_info", referenced from:
typeinfo for CAXException in libPods.a(ExtAudioFileConvert.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"std::__throw_bad_alloc()", referenced from:
std::_Vector_base<AudioBufferList*, std::allocator<AudioBufferList*> >::_M_allocate(unsigned long) in libPods.a(ExtAudioFileConvert.o)
"CAStreamBasicDescription::CAStreamBasicDescription()", referenced from:
_GetConvertedData in libPods.a(ExtAudioFileConvert.o)
"___cxa_allocate_exception", referenced from:
_GetConvertedData in libPods.a(ExtAudioFileConvert.o)
"___cxa_throw", referenced from:
_GetConvertedData in libPods.a(ExtAudioFileConvert.o)
"operator new[](unsigned long)", referenced from:
_GetConvertedData in libPods.a(ExtAudioFileConvert.o)
"___cxa_begin_catch", referenced from:
_GetConvertedData in libPods.a(ExtAudioFileConvert.o)
"operator new(unsigned long)", referenced from:
_GetConvertedData in libPods.a(ExtAudioFileConvert.o)
std::_Vector_base<AudioBufferList*, std::allocator<AudioBufferList*> >::_M_allocate(unsigned long) in libPods.a(ExtAudioFileConvert.o)
"std::__throw_length_error(char const*)", referenced from:
std::vector<AudioBufferList*, std::allocator<AudioBufferList*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<AudioBufferList**, std::vector<AudioBufferList*, std::allocator<AudioBufferList*> > >, AudioBufferList* const&) in libPods.a(ExtAudioFileConvert.o)
"___cxa_free_exception", referenced from:
_GetConvertedData in libPods.a(ExtAudioFileConvert.o)
"_OBJC_CLASS_$_MPMusicPlayerController", referenced from:
objc-class-ref in libPods.a(AudioManager.o)
"___cxa_end_catch", referenced from:
_GetConvertedData in libPods.a(ExtAudioFileConvert.o)
"std::terminate()", referenced from:
_GetConvertedData in libPods.a(ExtAudioFileConvert.o)
"operator delete(void*)", referenced from:
_GetConvertedData in libPods.a(ExtAudioFileConvert.o)
std::vector<AudioBufferList*, std::allocator<AudioBufferList*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<AudioBufferList**, std::vector<AudioBufferList*, std::allocator<AudioBufferList*> > >, AudioBufferList* const&) in libPods.a(ExtAudioFileConvert.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I suspect the frameworks are not set properly in the podspec as this is my first pod to write and I probably have a few mistakes in there.
Thanks in advance.
Officially answering the question I posted. I needed to do the following to fix it:
Link the C++ standard library: (Thanks to #H2CO3)
add s.library = 'stdc++' to the podspec
Link MediaPlayer framework: (Thanks to #H2CO3)
add s.frameworks = 'MediaPlayer' to the podspec
Issue with CAStreamBasicDescription was fixed by following the answer of: Trouble linking Tim Bolstad's Core Audio Example
I tried importing the parse framework in my project. I made sure it is liked with my project and I couldn't find anything about whether it is 'arc sensitive' or not. My project is arc based.
This is the error I'm getting:
Undefined symbols for architecture i386:
"_SCNetworkReachabilityCreateWithName", referenced from:
-[PFCommandCache init] in Parse(PFCommandCache.o)
+[PFInternalUtils(Reachability) isParseReachable] in Parse(PFInternalUtils.o)
"_SCNetworkReachabilityGetFlags", referenced from:
___22-[PFCommandCache init]_block_invoke in Parse(PFCommandCache.o)
+[PFInternalUtils(Reachability) isParseReachable] in Parse(PFInternalUtils.o)
"_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
-[PFCommandCache init] in Parse(PFCommandCache.o)
"_SCNetworkReachabilitySetCallback", referenced from:
-[PFCommandCache init] in Parse(PFCommandCache.o)
"_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
-[PFCommandCache dealloc] in Parse(PFCommandCache.o)
"_SecItemAdd", referenced from:
+[PFInternalUtils saveToKeychain:data:] in Parse(PFInternalUtils.o)
"_SecItemCopyMatching", referenced from:
+[PFInternalUtils loadFromKeychain:] in Parse(PFInternalUtils.o)
"_SecItemDelete", referenced from:
+[PFInternalUtils saveToKeychain:data:] in Parse(PFInternalUtils.o)
+[PFInternalUtils deleteFromKeychain:] in Parse(PFInternalUtils.o)
"_UTTypeCopyPreferredTagWithClass", referenced from:
-[PFFile getMimeType] in Parse(PFFile.o)
"_UTTypeCreatePreferredIdentifierForTag", referenced from:
-[PFFile getMimeType] in Parse(PFFile.o)
"_kCFStreamPropertyFTPAttemptPersistentConnection", referenced from:
-[PFHTTPCommand scheduleInCurrentThread] in Parse(PFHTTPCommand.o)
"_kCFStreamPropertyHTTPAttemptPersistentConnection", referenced from:
-[PFHTTPCommand scheduleInCurrentThread] in Parse(PFHTTPCommand.o)
"_kSecAttrAccessible", referenced from:
+[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
"_kSecAttrAccessibleAfterFirstUnlock", referenced from:
+[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
"_kSecAttrAccount", referenced from:
+[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
"_kSecAttrService", referenced from:
+[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
"_kSecClass", referenced from:
+[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
"_kSecClassGenericPassword", referenced from:
+[PFInternalUtils getKeychainQuery:] in Parse(PFInternalUtils.o)
"_kSecMatchLimit", referenced from:
+[PFInternalUtils loadFromKeychain:] in Parse(PFInternalUtils.o)
"_kSecMatchLimitOne", referenced from:
+[PFInternalUtils loadFromKeychain:] in Parse(PFInternalUtils.o)
"_kSecReturnData", referenced from:
+[PFInternalUtils loadFromKeychain:] in Parse(PFInternalUtils.o)
"_kSecValueData", referenced from:
+[PFInternalUtils saveToKeychain:data:] in Parse(PFInternalUtils.o)
"_kUTTagClassFilenameExtension", referenced from:
-[PFFile getMimeType] in Parse(PFFile.o)
"_kUTTagClassMIMEType", referenced from:
-[PFFile getMimeType] in Parse(PFFile.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Make sure you link against the SystemConfiguration and the Security framework in your project. See this question for more details. As Hector pointed out in the comments, all of the required frameworks for Parse can be found in the iOS Quick Start Guide.
AudioToolbox.framework
CFNetwork.framework
CoreGraphics.framework
CoreLocation.framework
libz.1.1.3.dylib
MobileCoreServices.framework
QuartzCore.framework
Security.framework
StoreKit.framework
SystemConfiguration.framework
Add MobileCoreServices.framework from your project in addition to these frameworks
-Accounts.framework
-AudioToolbox.framework
-CFNetwork.framework
-CoreGraphics.framework
-CoreLocation.framework
-libz.dylib
-MobileCoreServices.framework
-QuartzCore.framework
-Security.framework
-Social.framework
-StoreKit.framework
-SystemConfiguration.framework
I had to add "$(inherited)" to the Framework Search Paths in Build Settings to get it work.
I am using google plus share sdk for posting to google plus. but it gives me following linker error:
Undefined symbols for architecture armv7:
"_kGTMOAuth2WebViewFailed", referenced from:
-[GTMOAuth2ViewControllerTouch webView:didFailLoadWithError:] in GTMOAuth2ViewControllerTouch.o
"_kGTMOAuth2WebViewKey", referenced from:
-[GTMOAuth2ViewControllerTouch notifyWithName:webView:kind:] in GTMOAuth2ViewControllerTouch.o
"_kGTMHTTPFetcherStatusDomain", referenced from:
-[GTLService objectFetcher:finishedWithData:error:] in GTLService.o
-[GTMHTTPFetcher connection:didReceiveData:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher connectionDidFinishLoading:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher isRetryError:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher shouldRetryNowForStatus:error:] in GTMHTTPFetcher.o
-[GTMOAuth2Authentication beginTokenFetchWithDelegate:didFinishSelector:] in GTMOAuth2Authentication.o
-[GTMOAuth2SignIn handleCallbackReached] in GTMOAuth2SignIn.o
...
"_kGTMHTTPFetcherErrorChallengeKey", referenced from:
-[GTMHTTPFetcher connection:didReceiveAuthenticationChallenge:] in GTMHTTPFetcher.o
"_kGTMOAuth2FetchTypeUserInfo", referenced from:
-[GTMOAuth2SignIn fetchGoogleUserInfo] in GTMOAuth2SignIn.o
"_kGTMHTTPFetcherStartedNotification", referenced from:
-[GTMHTTPFetcher beginFetchMayDelay:mayAuthorize:] in GTMHTTPFetcher.o
"_kGTMHTTPFetcherRetryDelayStoppedNotification", referenced from:
-[GTMHTTPFetcher destroyRetryTimer] in GTMHTTPFetcher.o
"_kGTMHTTPFetcherErrorDomain", referenced from:
-[GTMHTTPFetcher failToBeginFetchWithError:] in GTMHTTPFetcher.o
-[GTMHTTPFetcher backgroundFetchExpired] in GTMHTTPFetcher.o
-[GTMHTTPFetcher connection:didReceiveAuthenticationChallenge:] in GTMHTTPFetcher.o
"_kGTMOAuth2FetchTypeRefresh", referenced from:
-[GTMOAuth2Authentication beginTokenFetchWithDelegate:didFinishSelector:] in GTMOAuth2Authentication.o
"_kGTMOAuth2RefreshTokenChanged", referenced from:
-[GTMOAuth2Authentication setKeysForResponseDictionary:] in GTMOAuth2Authentication.o
"_kGTMOAuth2UserSignedIn", referenced from:
-[GTMOAuth2SignIn handleCallbackReached] in GTMOAuth2SignIn.o
"_kGTMOAuth2FetchTypeToken", referenced from:
Please help me.
Thanx in advance.
You will need to link libGooglePlusUniversal.a and the opensource "Google Toolbox for Mac files" into your project.
This can be done by either pressing Project > Add to project or dragging the files directly into your XCode project.