We have an iOS app which uses MISNAP SDK version (2.3) as part of scanning functionality and it was working fine. Since the recent update came for MiSnap which is of version 3.0 and we wanted to update the library in our said application. We followed the docs and we replaced the necessary libraries and we are stuck with below errors even after multiple tries of resolving it.
"_OBJC_CLASS_$_MiSnapViewController", referenced from: objc-class-ref
in DCVC.o objc-class-ref in CCVC.o ld:
symbol(s) not found for architecture armv7
clang: error: linker
command failed with exit code 1 (use -v to see invocation)
We dug up in internet searching solution for this issue and came along with this post but we did not find any solution for the above error. We also created a sample project with the new version of the SDK and it works well. We doubt that this might be some configuration issue which we are unable to figure even after multiple tries.
Below is the current configuration for our application
Deployment Target - 7.1 and above
Base SDK - latest(9.0)
Build Active architecture only - Yes
Valid architectures - armv7 armv7s arm64
Related
Building with Unity 2018.4.2 - Xcode 10.2 - Latest iOS Targets
Firebase Latest (6.1.1) for Unity with .Net 4
For Firebase We are using the following unity packages:
- FirebaseMessaging.unitypackage
- FirebaseAnalytics.unitypackage
Get the following Build Error in Xcode:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_FIRDynamicLinks", referenced from:
objc-class-ref in libFirebaseCppApp.a(invites_receiver_internal_ios_aa7b75b2efc3269e88f1077e55250e5a.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
On another Machine same error however armv7 target:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_FIRDynamicLinks", referenced from:
objc-class-ref in libFirebaseCppApp.a(invites_receiver_internal_ios_aa7b75b2efc3269e88f1077e55250e5a.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Tested Solutions (no solution yet):
Obj-C to frameworks (was already there)
Updated Cocoa Pods to Latest
Deleted Developer/Xcode/DerivedData
Updated Cocoa Pods and deleted caches
The strangest thing is this only started happening on Monday, previously was working, nothing else was changed, so this leads to believe this is Google changed something in their Cocoa pods library which is linking agains't another package which is not included now.
Problem does not occur in the same Android Variant of the Project.
Solution:
It now requires you to also include and install Firebase: DynamicLinks in order to compile for iOS.
FirebaseDynamicLinks.unitypackage
So install the following package into your unity project from the download of Firebase Unity.
I'm currently trying to integrate the Google Consent SDK, but as soon as I call
[PACConsentInformation.sharedInstance requestConsentInfoUpdateForPublisherIdentifiers:#[ #"pub-0123456789012345"]
I get the following error in Xcode console:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_PACConsentInformation", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I've been searching Stackoverflow for a couple of hours now and I've tried various things such as Enabling Bitcode, Updating Linker Flags with $(inherited), as well as a few other things like adding suggested frameworks and libz found in popular questions/answers here, but still no luck.
I've gone as far to try my project in Xcode 8.3.2, Xcode 9.0 and Xcode 9.2, all of which show this error.
Is there anything I'm missing?
I'm completely stuck for ideas now.
Thanks for you help.
Go to Build Phase -> Link Binary With Libraries then add PersonalizedAdConsent framework
Hello I'm using a library in my project, and basically it's working on real devices, but not on simulator.
I would like to know how to add compatibility with simulator also.
I've search around, and I found some answers that should have solved my problem, but they're not doing it. (Maybe I'm doing things wrong, but still not working).
I'm getting this error:
Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_Library",
referenced from:
objc-class-ref in class.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code
1 (use -v to see invocation)
I tried it on xcode7 and xcode8.
Thanks.
Maybe you're using a framework or library which was only built for ARM architecture. In that case you'll have to create fat binary which will include code for all platforms (x86 for simulator, ARM and ARM64 for iOS devices).
I am integrating skobbler maps in my project. I were looking at the SDKTools. Is it necessary to integrate SDKTools to have navigation feature in the app. If yes, I were integrating it using Xcode 6.1 but it shows me error duplicate symbols for arm64 and also
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_SKTNavigationUtils", referenced from:
objc-class-ref in MapsViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I am following this link: http://developer.skobbler.com/getting-started/iosTools
Please help me as I am stuck. Spend two whole days only for integration
It is not necessary to integrate SDKTools to have navigation feature in the application, just the SDK is enough.
Also based on the steps from the website, skmaps developers created a demo app using the SDKTools for navigation. You can find it at the following link:
http://www1.skobbler.com/iphonebuilds/20150107/SDKToolsIntegrationDemo.zip
The "duplicate symbols for arm64 " error can be caused by these reasons:
Declaring constants with the same name as we have in the SDKTools
(will be fixed in the next release).
The same file is added in the project twice.
I made my own framework and everything was fine. But when Apple releases 64bit architecture when another project uses 64-bit architecture my framework doesn't want to compile.
When I changed architecture of project just armv7 and armv7s - it complies good but when i changed architecture back to arm64 - it produces error -
(null): "_OBJC_CLASS_$MYFramework", referenced from:
objc-class-ref in RWAppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
So I've changed architecture of framework to include arm64, but error in my project still there
Is there another way to support arm64?
I added a screenshot of support architectures of framework
From error description you provided I can see that:
During linking phase for Intel 64bit architecture _OBJC_CLASS_$MYFramework symbol was not found. Which is quite strange as you sure you compiling for arm architecture. Maybe you should revise Makefiles of your framework?
Have a look here Shell you make target IOS7 32bit?