missing symbols in Gstreamer IOS tutorial - ios

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

Related

Build error after deintegrating Cocoapods

I followed the following guide: How to remove CocoaPods from a project? because my podfile was giving me a lot of trouble. Now I'm getting this error message and have no idea what's going on
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_RCTEventEmitter", referenced from:
_OBJC_CLASS_$_RCTLinkingManager in libRCTLinking.a(RCTLinkingManager.o)
"_OBJC_METACLASS_$_RCTEventEmitter", referenced from:
_OBJC_METACLASS_$_RCTLinkingManager in libRCTLinking.a(RCTLinkingManager.o)
"_RCTRegisterModule", referenced from:
+[RCTLinkingManager load] in libRCTLinking.a(RCTLinkingManager.o)
"_RCTErrorUnspecified", referenced from:
-[RCTLinkingManager openURL:resolve:reject:] in libRCTLinking.a(RCTLinkingManager.o)
"_RCTRunningInAppExtension", referenced from:
-[RCTLinkingManager canOpenURL:resolve:reject:] in libRCTLinking.a(RCTLinkingManager.o)
"_RCTSharedApplication", referenced from:
-[RCTLinkingManager openURL:resolve:reject:] in libRCTLinking.a(RCTLinkingManager.o)
-[RCTLinkingManager canOpenURL:resolve:reject:] in libRCTLinking.a(RCTLinkingManager.o)
"_OBJC_CLASS_$_RCTRootView", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_RCTEventEmitter", referenced from:
_OBJC_CLASS_$_RCTLinkingManager in libRCTLinking.a(RCTLinkingManager.o)
"_OBJC_METACLASS_$_RCTEventEmitter", referenced from:
_OBJC_METACLASS_$_RCTLinkingManager in libRCTLinking.a(RCTLinkingManager.o)
"_RCTRegisterModule", referenced from:
+[RCTLinkingManager load] in libRCTLinking.a(RCTLinkingManager.o)
"_RCTErrorUnspecified", referenced from:
-[RCTLinkingManager openURL:resolve:reject:] in libRCTLinking.a(RCTLinkingManager.o)
"_RCTRunningInAppExtension", referenced from:
-[RCTLinkingManager canOpenURL:resolve:reject:] in libRCTLinking.a(RCTLinkingManager.o)
"_RCTSharedApplication", referenced from:
-[RCTLinkingManager openURL:resolve:reject:] in libRCTLinking.a(RCTLinkingManager.o)
-[RCTLinkingManager canOpenURL:resolve:reject:] in libRCTLinking.a(RCTLinkingManager.o)
"_OBJC_CLASS_$_RCTRootView", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64

Can Firebase Be Used With A Swift Framework Project?

I took the following steps:
Create a brand new swift single view application.
Add a pod file that expresses a dependency on Firebase
Install the pods
Open the resultant workspace and build for simulator
The builds succeeds
I then repeated these steps except that in step 1 I created a brand new swift cocoa touch framework. Now the builds fails.
As you can see below, Firebase is referencing undefined symbols. And those symbols are mostly ones that I recognize and would expect to be present: UIScreen, UIWebView, UIView, etc.
I suspect that this all has something to do with the fact that Firebase is a static library (as is pointed out here by Mike McDonald as a reason why Firebase cannot be used with Carthage).
I am at the limit of my understanding of the differences/consequences of applications, frameworks, and libraries. Can anyone help me to understand what is going on here?
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_UIScreen", referenced from:
objc-class-ref in FirebaseAuth(FIRAuthWebViewController_86c5ea5aedb4d33fd68b8660d74be54c.o)
"_OBJC_CLASS_$_UIWebView", referenced from:
objc-class-ref in FirebaseAuth(FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o)
"_OBJC_CLASS_$_UIActivityIndicatorView", referenced from:
objc-class-ref in FirebaseAuth(FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o)
"_OBJC_METACLASS_$_UIView", referenced from:
_OBJC_METACLASS_$_FIRAuthWebView in FirebaseAuth(FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o)
"_CGRectZero", referenced from:
-[FIRAuthWebView createWebView] in FirebaseAuth(FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o)
"_UIApplicationOpenURLOptionsAnnotationKey", referenced from:
-[FIRAuthAppDelegateProxy initWithApplication:] in FirebaseAuth(FIRAuthAppDelegateProxy_d84ca069394368ea9e8127dbd13cc324.o)
"_UIApplicationDidEnterBackgroundNotification", referenced from:
___23-[FIRAuth initWithApp:]_block_invoke_2 in FirebaseAuth(FIRAuth_cce0d8e8cd5be2b376ebd7862de82f18.o)
-[FIRAuth dealloc] in FirebaseAuth(FIRAuth_cce0d8e8cd5be2b376ebd7862de82f18.o)
-[FIRClearcutLogger init] in FirebaseCoreDiagnostics(FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o)
"_OBJC_CLASS_$_UIColor", referenced from:
objc-class-ref in FirebaseAuth(FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o)
"_OBJC_CLASS_$_UIViewController", referenced from:
objc-class-ref in FirebaseAnalytics(UIViewController+FIRAScreenClassName_936040e31cd4dddd6f71a52ea1701d0d.o)
l_OBJC_$_CATEGORY_UIViewController_$_FIRAScreenClassName in FirebaseAnalytics(UIViewController+FIRAScreenClassName_936040e31cd4dddd6f71a52ea1701d0d.o)
_OBJC_CLASS_$_FIRAuthWebViewController in FirebaseAuth(FIRAuthWebViewController_86c5ea5aedb4d33fd68b8660d74be54c.o)
"_OBJC_CLASS_$_UIPageViewController", referenced from:
objc-class-ref in FirebaseAnalytics(FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o)
"_UIApplicationDidFinishLaunchingNotification", referenced from:
+[FIRAMeasurement load] in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o)
"_OBJC_METACLASS_$_UIViewController", referenced from:
_OBJC_METACLASS_$_FIRAuthWebViewController in FirebaseAuth(FIRAuthWebViewController_86c5ea5aedb4d33fd68b8660d74be54c.o)
"_OBJC_CLASS_$_UIView", referenced from:
_OBJC_CLASS_$_FIRAuthWebView in FirebaseAuth(FIRAuthWebView_25b1b3be4cd535a13078fd46686b4a67.o)
"_UIApplicationLaunchOptionsURLKey", referenced from:
+[FIRAMeasurement handleAppDidFinishLaunching:] in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o)
"_OBJC_CLASS_$_UINavigationController", referenced from:
objc-class-ref in FirebaseAnalytics(FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o)
objc-class-ref in FirebaseAuth(FIRAuthURLPresenter_f9c1670c7b472e1f12d82d1c6f46940a.o)
objc-class-ref in FirebaseAuth(FIRAuthDefaultUIDelegate_57cb718a1d423e27d0d50a3bf9524d86.o)
"_UIApplicationWillEnterForegroundNotification", referenced from:
___48-[FIRAMeasurement startMeasurementOnWorkerQueue]_block_invoke in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o)
"_OBJC_CLASS_$_UITabBarController", referenced from:
objc-class-ref in FirebaseAnalytics(FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o)
objc-class-ref in FirebaseAuth(FIRAuthDefaultUIDelegate_57cb718a1d423e27d0d50a3bf9524d86.o)
"_OBJC_CLASS_$_UIBarButtonItem", referenced from:
objc-class-ref in FirebaseAuth(FIRAuthWebViewController_86c5ea5aedb4d33fd68b8660d74be54c.o)
"_OBJC_CLASS_$_UIDevice", referenced from:
objc-class-ref in FirebaseAnalytics(FIRAEnvironmentInfo_0da493a96efd1159c2c84454cf5a7f9d.o)
objc-class-ref in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o)
objc-class-ref in FirebaseAnalytics(FIRAInAppPurchaseTransactionReporter_51b6624ff1330bf43a3ed7d9ba76e1ba.o)
objc-class-ref in FirebaseAnalytics(FIRAAEU_58e35a32128cb3aedeb97de41a9b356d.o)
objc-class-ref in FirebaseAnalytics(FIRAIdentity_8e9287d1fd6072066ad3b1332bc62373.o)
objc-class-ref in FirebaseAuth(FIRAuthKeychain_ee296104c7d22b9c7b07f84e7067440c.o)
objc-class-ref in FirebaseCore(FIRAppEnvironmentUtil_d91f40fc45222373d7f99c8b2ea3c83a.o)
...
"_UIWindowDidResignKeyNotification", referenced from:
-[FIRAScreenViewReporter init] in FirebaseAnalytics(FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o)
"_UIApplicationDidBecomeActiveNotification", referenced from:
___48-[FIRAMeasurement startMeasurementOnWorkerQueue]_block_invoke in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o)
-[FIRAScreenViewReporter init] in FirebaseAnalytics(FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o)
___23-[FIRAuth initWithApp:]_block_invoke_2 in FirebaseAuth(FIRAuth_cce0d8e8cd5be2b376ebd7862de82f18.o)
-[FIRAuth dealloc] in FirebaseAuth(FIRAuth_cce0d8e8cd5be2b376ebd7862de82f18.o)
"_OBJC_CLASS_$_UIWindow", referenced from:
l_OBJC_$_CATEGORY_UIWindow_$_FIRAScreenClassName in FirebaseAnalytics(UIWindow+FIRAScreenClassName_93645224f692c290f5d755885ec7f4c8.o)
"_UIApplicationWillResignActiveNotification", referenced from:
___48-[FIRAMeasurement startMeasurementOnWorkerQueue]_block_invoke in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o)
-[FIRAScreenViewReporter init] in FirebaseAnalytics(FIRAScreenViewReporter_ac44c2e1b22c7193e316d64ecdc73845.o)
"_UIBackgroundTaskInvalid", referenced from:
-[FIRAMeasurement initWithDatabaseName:persistedConfig:network:scheduler:alarm:options:] in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o)
-[FIRAMeasurement swapBackgroundTaskWithNewTaskID:] in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o)
-[FIRAMeasurement terminateBackgroundTask] in FirebaseAnalytics(FIRAMeasurement_41f8c6ad6e1fd9e66100bee4ee2fdd35.o)
-[FIRClearcutLogger init] in FirebaseCoreDiagnostics(FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o)
-[FIRClearcutLogger dealloc] in FirebaseCoreDiagnostics(FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o)
-[FIRClearcutLogger sendLogsWithCompletionHandler:] in FirebaseCoreDiagnostics(FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o)
___51-[FIRClearcutLogger sendLogsWithCompletionHandler:]_block_invoke in FirebaseCoreDiagnostics(FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o)
...
"_OBJC_CLASS_$_UIApplication", referenced from:
objc-class-ref in FirebaseAnalytics(FIRAAppDelegateProxy_2421946053f1c5c031a7dceeaf4d9408.o)
objc-class-ref in FirebaseAuth(FIRAuth_cce0d8e8cd5be2b376ebd7862de82f18.o)
objc-class-ref in FirebaseAuth(FIRAuthAppDelegateProxy_d84ca069394368ea9e8127dbd13cc324.o)
objc-class-ref in FirebaseAuth(FIRAuthDefaultUIDelegate_57cb718a1d423e27d0d50a3bf9524d86.o)
objc-class-ref in FirebaseCoreDiagnostics(FIRClearcutLogger_d1e734d02d610ce1f3d8c66a4d80fa41.o)
objc-class-ref in FirebaseInstanceID(FIRMessagingLog_045f628692bcbe68f0c668c89b92b24f.o)
ld: symbol(s) not found for architecture x86_64

PJSIP build error for ios

I was building PJSIP step by step according by iPhone,but when I build project in Xcode, I received some error like:
Undefined symbols for architecture arm64:
"_RGB24ToARGB", referenced from:
_conv_to_bgra in libpjmedia.a(converter_libyuv.o)
"_ABGRToARGB", referenced from:
_conv_to_bgra in libpjmedia.a(converter_libyuv.o)
"_I422ToARGB", referenced from:
_conv_to_bgra in libpjmedia.a(converter_libyuv.o)
"_ARGBScale", referenced from:
_conv_from_bgra in libpjmedia.a(converter_libyuv.o)
"_ABGRToI420", referenced from:
_conv_to_i420 in libpjmedia.a(converter_libyuv.o)
"_ARGBToI420", referenced from:
_conv_from_bgra in libpjmedia.a(converter_libyuv.o)
_conv_to_i420 in libpjmedia.a(converter_libyuv.o)
"_YUY2ToI420", referenced from:
_conv_to_i420 in libpjmedia.a(converter_libyuv.o)
"_UYVYToI420", referenced from:
_conv_to_i420 in libpjmedia.a(converter_libyuv.o)
"_I422ToI420", referenced from:
_conv_to_i420 in libpjmedia.a(converter_libyuv.o)
"_RGB24ToI420", referenced from:
_conv_to_i420 in libpjmedia.a(converter_libyuv.o)
"_I420ToABGR", referenced from:
_conv_from_i420 in libpjmedia.a(converter_libyuv.o)
"_ARGBToRGB24", referenced from:
_conv_from_bgra in libpjmedia.a(converter_libyuv.o)
"_UYVYToARGB", referenced from:
_conv_to_bgra in libpjmedia.a(converter_libyuv.o)
"_ARGBToUYVY", referenced from:
_conv_from_bgra in libpjmedia.a(converter_libyuv.o)
"_ARGBToYUY2", referenced from:
_conv_from_bgra in libpjmedia.a(converter_libyuv.o)
"_YUY2ToARGB", referenced from:
_conv_to_bgra in libpjmedia.a(converter_libyuv.o)
"_ARGBToABGR", referenced from:
_conv_from_bgra in libpjmedia.a(converter_libyuv.o)
"_I420ToRGB24", referenced from:
_conv_from_i420 in libpjmedia.a(converter_libyuv.o)
"_I420ToYUY2", referenced from:
_conv_from_i420 in libpjmedia.a(converter_libyuv.o)
"_I420ToUYVY", referenced from:
_conv_from_i420 in libpjmedia.a(converter_libyuv.o)
"_ARGBToI422", referenced from:
_conv_from_bgra in libpjmedia.a(converter_libyuv.o)
"_I420ToARGB", referenced from:
_conv_from_i420 in libpjmedia.a(converter_libyuv.o)
_conv_to_bgra in libpjmedia.a(converter_libyuv.o)
"_I420Rotate", referenced from:
_pjmedia_vid_dev_conv_resize_and_rotate in libpjmedia-videodev.a(util.o)
"_I420ToI422", referenced from:
_conv_from_i420 in libpjmedia.a(converter_libyuv.o)
"_I420Scale", referenced from:
_conv_from_i420 in libpjmedia.a(converter_libyuv.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I checked libpjmedia.a with lipo -info it does support arm64. I am so confused after work on it for two days, wish you can help, THX.
What's in my config_site.h
#define PJ_CONFIG_IPHONE 1
#define PJMEDIA_HAS_VIDEO 1
#include "pj/config_site_sample.h"
Environment: Xcode 7.3
Device: iPhone 6p
You have to link libyuv.a to your project.

Unity - using Fabric causes problems with iOS

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.

Trouble getting OpenCV framework symbols to link in XCode

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.

Resources