Undefined symbols for architecture armv7 - linker command failed - ios

I am working on a game developed with unity, when i try to build it for iOS i got build failed due to undefined symbol.
"_OBJC_CLASS_$_LAContext", referenced from:
objc-class-ref in GoogleSignIn(MDMPasscodeCache_7bfe55864ba5a0ab8141ccdcdc4ab596.o)
"__SuperpowPlugin_ShowCustomerReview", referenced from:
_SuperpowIOS__SuperpowPlugin_ShowCustomerReview_m3277441088 in Bulk_Assembly-CSharp-firstpass_2.o
_SuperpowIOS_ShowCustomerReview_m2157481586 in Bulk_Assembly-CSharp-firstpass_2.o
(maybe you meant: _SuperpowIOS__SuperpowPlugin_ShowCustomerReview_m3277441088)
"__SuperpowPlugin_SetNotifyAppearance", referenced from:
_SuperpowIOS__SuperpowPlugin_SetNotifyAppearance_m2340220546 in Bulk_Assembly-CSharp-firstpass_2.o
(maybe you meant: _SuperpowIOS__SuperpowPlugin_SetNotifyAppearance_m2340220546)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
My xcode version is 9.4 and unity 5.6.1f1.
I have been stuck with this since 3 days, have searched a lot and linked missing files and frameworks, solved many errors but this is the one i can't get rid of.
Any help would be great.
Thanks

Try this following steps -
Press "Cmd+Shift+K" to clean up, and quit Xcode.
Delete the cache Run "rm -rf ~/Library/Developer/Xcode/DerivedData" in terminal
Open the project and re-build it

After doing some research, I finally figured it out. I have Gooogle mobile ads plugin and google play game plugins both. I didn't installed cocoa pods and I was adding all frameworks in Xcode.
Installing cocoa pods did the job :)
sudo gem install cocoapods
After that i rebuild the xcode project from unity and add all frameworks and files mentioned in particular plugin installation and it worked.
So anyone having same issue, then please check for your pod installation.

Related

Xcode FIRRemoteConfig Build error

In my xcode project, firebase realtime database and Analytics already implemented and working successfully. To implement, Firebase remote config feature, I added FirebaseRemoteConfig.framework and Protobuf.framework into my project. I am getting build error with following message. I have not write any code yet related with remote config.
Undefined symbols for architecture arm64:
"_kFIRAppIsDefaultAppKey", referenced from:
+[FIRRemoteConfig(FIRApp) receivedReadyToConfigureNotification:] in FirebaseRemoteConfig(FIRRemoteConfig+FIRApp_718fa6fc16d7fc9251249ec4e3a58ce2.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Here is all framework that I added into my project.
I have found solution of this issue. First you need to add all the updated frameworks of firebase. If you are using it. In my case I was having older version of firebase sdks. I just updated it & error went off. Happy Coding :)

iOS build succeeds but fails to archive

I have been working on my first ResearchKit app. Since the last time I created an archive, I have included a custom library for creating JSON strings. See my previous question.
After importing the .h file in that bridging-header file, I was able to use the package.
The project was running fine in the simulator. I even did a fresh clean and build for the "Generic iOS Device", and that completed with no errors. When I went to archive the project, during the linking stage, I get this error:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_ORKLocation", referenced from:
objc-class-ref in ORKESerialization.o "_OBJC_CLASS_$_ORKConfirmTextAnswerFormat", referenced from:
objc-class-ref in ORKESerialization.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit
code 1 (use -v to see invocation)
My Xcode version is 7.1.1. I have been searching around the web for possible answers. Apparently it might have something to do with these architecture version, but I can't seen to pinpoint the problem. Any help would be appreciated. Thanks!
This sounds like a bug. Best bet is to file it on Github.

IOS Undefined symbols for architecture x86_64

I tried to put AFNetworking 2.0 framework by usual drag and drop in iOS. Then when I execute the application it says the below errors:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_AFHTTPRequestOperation", referenced from:
objc-class-ref in TableViewController.o "_OBJC_CLASS_$_AFJSONResponseSerializer", referenced from:
objc-class-ref in TableViewController.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit
code 1 (use -v to see invocation)
Please let me know how to resolve this issue.
I tried to use cocoapods but for some reason I couldn't install cocoapods in my machine.
I spent a couple of hours fighting with this exact same issue, going through all the Google hits I could find. Building for the device was working, but building for the simulator was not.
Here are the steps that finally solved the issue for me:
Clear the XCode caches:
rm -rf ~/Library/Developer/Xcode/DerivedData/
Clear the CocoaPods caches and reinstall the dependencies:
rm -rf "${HOME}/Library/Caches/CocoaPods"
rm -rf "`pwd`/Pods/"
pod update
Finally go to the "Pods" project and set the Build Active Architectures Only to No also for the "Debug" configuration.
I used xCode 6.1.1, download and add to project updated AFNetworking and had the same problem, but with old version AFNetworking worked good.
Check this two ways, worked for me:
1) update xCode
2) download old version AFNetworking
This kind of weird stuff started to happen after Xcode 11.4.1 update. Any library, framework that you previously had, and didn't have the symbols to be compiled to iOS simulator(x86_64) can show these errors...
One solution is to recompile the framework in your machine adding the all architectures needed. I haven't recompiled AFNetworking lately, so I cannot give you a step by step on that... But probably in AFNetworking repo, they should have a makefile or configure script to that kind of thing.
Good luck!

Venmo touch Braintree payment - compile error: Undefined symbols for architecture i386: "_OBJC_CLASS_$_VTClient"

I have successfully installed braintree ios sdk using cocoapod and It was compiled fine.
However, when I initVTClient in my appdelegate.m file. I was getting compiling error:
Undefined symbols for architecture i386:
"OBJCCLASS_$_VTClient", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
and I couldn't find any solutions online at all. any tips?
also submitted an issue here:
https://github.com/braintree/braintree_ios/issues/27
It's possible that you need to put "build settings"->architectures back to "standard architectures" since the old Venmo library (before their big v0 update) was built before the 64bit architecture. That's one solution I've seen.
[EDITED: 2/25/2014, 4:47pm EST]
I got my project to work. The problem for me was that my existing build settings were getting in the way of the build settings that cocoapods wanted to load onto the project. Those are the important ones such as the Venmo Framework, so there's good reason for the issue.
If you go to "build settings" -> "other linker flags", and add a new flag: "$(inherited)", it will work. I put that one at the top of the list so I'd try the same, not sure if order matters. What this does is keeps your old settings / flags, (I was using -ObjC), and imports the new ones from cocoapods. Good luck.
looks like i need to add VenmoTouch.framework into my target->Link Binary with Libraries.
then what's the point of using cocoapods
the official answer:
https://github.com/braintree/braintree_ios/issues/27
Make sure you verify which target CocoaPods is integrating with. There are a number of patterns for specifying this, such as target "name" do ... end and link_with.
See here for more details: http://guides.cocoapods.org/syntax/podfile.html#link_with

Xcode mach -o linker

When i am trying to compile my project with NMSSH framework, XCode 5 says:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_NMSSHSession", referenced from: objc-class-ref in HelloWorldViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What should I do?
I ran into a similar issue myself. Here's what I did to fix it.
Open the downloaded Git repo in Finder
Open the NMSSH-iOS.xcodeproj file. NOT the NMSSH.xcodeproj!
Clean and build the project.
Follow the steps from the Github wiki page https://github.com/Lejdborg/NMSSH/wiki/Build-and-use-in-your-iOS-project
Actually, this itself is on the wiki page too. I know I opened the wrong Xcode Project and it seems like a lot of people do it accidentally. So, that's what I had to do to resolve it. Also, you'll have to build the framework for either the physical device or the emulator, depending upon what you're using and add to your project depending.
Hope this helps! Good luck!
You need to link NMSSH.framework with your project.
Open Build Phases in your project settings and add NMSSH.framework into the group Link Binary With Libraries.
Try this:
Click on the project then go to build settings and type linker flags in the search bar
Add "-ObjC" to "Other Linker Flags"

Resources