how to use protocolbuffers from static lib - iphone

i have followed this : http://code.google.com/p/metasyntactic/wiki/ProtocolBuffers
i was able to compile the Person.proto file
got the .h and .m files added to to my static lib project (libIOS)
the UI Project references the libIOS
now when i compile i get the following errors in UI project
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_PBExtensionRegistry", referenced from:
objc-class-ref in libIOS.a(Person.pb.o)
"_OBJC_CLASS_$_PBGeneratedMessage", referenced from:
_OBJC_CLASS_$_Person in libIOS.a(Person.pb.o)
"_OBJC_CLASS_$_PBGeneratedMessage_Builder", referenced from:
_OBJC_CLASS_$_Person_Builder in libIOS.a(Person.pb.o)
"_OBJC_CLASS_$_PBMutableExtensionRegistry", referenced from:
objc-class-ref in libIOS.a(Person.pb.o)
"_OBJC_CLASS_$_PBUnknownFieldSet", referenced from:
objc-class-ref in libIOS.a(Person.pb.o)
"_OBJC_IVAR_$_PBGeneratedMessage.memoizedSerializedSize", referenced from:
-[Person serializedSize] in libIOS.a(Person.pb.o)
"_OBJC_METACLASS_$_PBGeneratedMessage", referenced from:
_OBJC_METACLASS_$_Person in libIOS.a(Person.pb.o)
"_OBJC_METACLASS_$_PBGeneratedMessage_Builder", referenced from:
_OBJC_METACLASS_$_Person_Builder in libIOS.a(Person.pb.o)
"_computeInt32Size", referenced from:
-[Person serializedSize] in libIOS.a(Person.pb.o)
"_computeStringSize", referenced from:
-[Person serializedSize] in libIOS.a(Person.pb.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
the project libIOS complies fine no errors
the project UI gives the above errors

Related

"_OBJC_CLASS_$_GDTStorage", referenced from:

I keep getting this warning while trying to build my app, also can't link to firebase. I am using xcode 9.2
'''Undefined symbols for architecture x86_64:
"_sqlite3_prepare_v3", referenced from:
-[APMSqliteStore prepareSQL:error:] in GoogleAppMeasurement(APMSqliteStore_645df61703f07a6639f4b1de4d0cf5c3.o)
"_OBJC_CLASS_$_GDTStorage", referenced from:
objc-class-ref in libGoogleDataTransport.a(GDTUploadPackage.o)
objc-class-ref in libGoogleDataTransport.a(GDTLifecycle.o)
objc-class-ref in libGoogleDataTransport.a(GDTUploadCoordinator.o)
objc-class-ref in libGoogleDataTransport.a(GDTTransformer.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)'''[1]
Add libsqlite3.tbd to 'Linked Frameworks and Libraries' in the project properties.

AWS implementation issue on AWSMobileHubHelper.framework

I have searched the web for a possible solution, but without any luck.
Currently i'm trying to integrate the default AWS frameworks into my project. But i can't get rid of the following errors.
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_FBSDKLoginManager", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSFacebookSignInProvider.o)
"_OBJC_CLASS_$_AWSSNSGetEndpointAttributesInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_FBSDKApplicationDelegate", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSFacebookSignInProvider.o)
"_OBJC_CLASS_$_AWSSNSSubscribeInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_GIDSignIn", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSGoogleSignInProvider.o)
"_OBJC_CLASS_$_AWSSNSSetEndpointAttributesInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_FBSDKAccessToken", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSFacebookSignInProvider.o)
"_OBJC_CLASS_$_AWSSNS", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_FBSDKGraphRequest", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSFacebookSignInProvider.o)
"_OBJC_CLASS_$_AWSSNSCreatePlatformEndpointInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSUnsubscribeInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_AWSSNSErrorDomain", referenced from:
___88-[AWSPushManager interceptApplication:didRegisterForRemoteNotificationsWithDeviceToken:]_block_invoke.239 in AWSMobileHubHelper(AWSPushManager.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I've tryed removing "-ObjC" from "Other linker flags", without luck.
Because these frameworks aren't the only frameworks i use, not all solutions work for me. Simply removing 'ARM64' is no solution.
Please help.

Undefined symbols for architecture i386: "_OBJC_CLASS_$_GDataDateTime", referenced from:

I have worked in google calendar. Now i have download the sample code from this link:
"http://code.google.com/p/iphone-gcal/".
But in this code it is some Gdata codes are missing. So i have implemented that code but also i got this below errors. Please some body help me to solve this errors.
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_GDataDateTime", referenced from:
objc-class-ref in RootViewController.o
objc-class-ref in EditingViewController.o
"_OBJC_CLASS_$_GDataEntryCalendarEvent", referenced from:
objc-class-ref in EditingViewController.o
"_OBJC_CLASS_$_GDataQueryCalendar", referenced from:
objc-class-ref in RootViewController.o
"_OBJC_CLASS_$_GDataServiceGoogleCalendar", referenced from:
objc-class-ref in RootViewController.o
"_OBJC_CLASS_$_GDataWhen", referenced from:
objc-class-ref in RootViewController.o
objc-class-ref in EditingViewController.o
"_OBJC_CLASS_$_GDataWhere", referenced from:
objc-class-ref in EditingViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
You need to add the gdata .m files (GDataDateTime.m, GDataEntryCalendarEvent.m, etc.) to your target's “Compile Sources” build phase.
One way to do this is using the File Inspector. See this answer for an animated example.

implement youtube API

Currently, I am developing an App in which I have implemented you tube API for sending videos
into you tube.For this I have used https://github.com/nparry/gdata-objectivec-clien/tree/master/Source
library and its work fine for me when I am individually use it.but when I am merge this API
in my working App it shows me following error:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_GDataYouTubeMediaGroup", referenced from:
objc-class-ref in YoutubeViewController.o
"_OBJC_CLASS_$_GDataUtilities", referenced from:
objc-class-ref in YoutubeViewController.o
"_OBJC_CLASS_$_GDataMediaTitle", referenced from:
objc-class-ref in YoutubeViewController.o
"_OBJC_CLASS_$_GDataServiceGoogleYouTube", referenced from:
objc-class-ref in YoutubeViewController.o
"_OBJC_CLASS_$_GDataMediaKeywords", referenced from:
objc-class-ref in YoutubeViewController.o
"_kGDataSchemeYouTubeCategory", referenced from:
-[YoutubeViewController uploadPressed:] in YoutubeViewController.o
"_OBJC_CLASS_$_GDataMediaDescription", referenced from:
objc-class-ref in YoutubeViewController.o
"_OBJC_CLASS_$_GDataEntryYouTubeUpload", referenced from:
objc-class-ref in YoutubeViewController.o
"_OBJC_CLASS_$_GDataMediaCategory", referenced from:
objc-class-ref in YoutubeViewController.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I have searched so hard for removing this error but can't find any solution.How can I solve
this?
this is an error that comes on adding files from external sources into project, all you need to do is : go to "Build Phases" under "Targets", there you need to add all .m files in "Compile Sources".
It sounds like you haven't linked the gdata files to the target. Easiest way to do that is remove them from the project, and then add them again, making sure you check the box next to your project under "add to targets".
Hope this helps

iPhone : Upload video to Youtube while running app in device

I am getting following error while installing the application on my device. before running in device i am tested in simulator uploaded fine but in device i am getting this error :
plz help me how to solve this ..........
_OBJC_CLASS_$_GDataYouTubeMediaGroup", referenced from:
objc-class-ref in YoutubeUploader.o
"_OBJC_CLASS_$_GDataUtilities", referenced from:
objc-class-ref in YoutubeUploader.o
"_OBJC_CLASS_$_GDataMediaTitle", referenced from:
objc-class-ref in YoutubeUploader.o
"_OBJC_CLASS_$_GDataServiceGoogleYouTube", referenced from:
objc-class-ref in YoutubeUploader.o
"_OBJC_CLASS_$_GDataMediaKeywords", referenced from:
objc-class-ref in YoutubeUploader.o
"_kGDataServiceDefaultUser", referenced from:
-[YoutubeUploader uploadVideoFile] in YoutubeUploader.o
"_kGDataSchemeYouTubeCategory", referenced from:
-[YoutubeUploader uploadVideoFile] in YoutubeUploader.o
"_OBJC_CLASS_$_GDataMediaDescription", referenced from:
objc-class-ref in YoutubeUploader.o
"_OBJC_CLASS_$_GDataEntryYouTubeUpload", referenced from:
objc-class-ref in YoutubeUploader.o
"_OBJC_CLASS_$_GDataMediaCategory", referenced from:
objc-class-ref in YoutubeUploader.o
ld: symbol(s) not found for architecture armv6
clang: error: linker command failed with exit code 1 (use -v to see invocation)
You are using the GData library but haven't linked/added it.
Check out GData Objective-C Client Setup in XCode 4 on how to build/link the GData library correctly.