I am trying to integrate SQLCipher in one of my existing project with deployment target 6.0 but since sqlcipher supports 9.0 as its minimum deployment target ,so I changed the deployment target to 9.0 now.
With this I made a change in build setting also,I changed "Build active architecture only" to yes.I tried building the app then.But it shows few errors related to already existing classes.
Error-"Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_ConditionViewController", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)".
Valid Architecture- armv7 arm64
I am not able to figure out this error and fix it.Kindly help me to resolve it.Any help would be appreciated.
Related
I'm building app on iOS (Xcode) using Flutter. Debug build works well, however when I build for release, I receive an error.
ld: warning: ignoring file /Users/mac/Library/Developer/Xcode/DerivedData/Runner-goymfovmnvitvmgsgblaexbdslkp/Build/Intermediates.noindex/ArchiveIntermediates/Runner/BuildProductsPath/Release-iphoneos/stripe_native/stripe_native.framework/stripe_native, building for iOS-armv7 but attempting to link with file built for iOS-arm64
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_StripeNativePlugin", referenced from:
objc-class-ref in GeneratedPluginRegistrant.o
ld: symbol(s) not found for architecture armv7
I had a look around, tried to set Build Active Architecture Only to No, Link Binary to Libraries - nothing seemed to work.
What should I do in this case?
The underlying problem is iOS 11 has dropped support for the armv7 architecture and one of your Deployment targets is probably set to < 11.0 and another is set to >= 11.0 or not set. When the target is less than 11.0 armv7 is built, when the target is >= 11.0 or not set armv7 is not built.
The problem in my case was my app's deployment target was set to iOS 10, but my Pod's target was not set (thus building for the latest iOS 13). For this particular case it was for the UIDeviceIdentifier target. The error was:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_UIDeviceHardware", referenced from:
objc-class-ref in ....
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
In this particular case I was just updating my pods so the pod's settings must've been cleared. In the Pod's target settings under the Build Settings tab, I set the iOS Deployment Target to 10.0 (same as the app) and it worked.
As an alternative, I could've set the app's deployment target to 11.0.
I have created a framework & integrated in the another app(Demo). When i run this Demo app on simulator then there is not any error...
But when do i run on device its gets error.
ld: warning: ignoring file /Users/mac/Desktop/library file/Demo/pk.framework/pk, file was built for x86_64 which is not the architecture being linked (arm64): /Users/mac/Desktop/library file/Demo/pk.framework/pk
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_InterstitialAdView", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Please share your experience.
I am using Xcode 9.0
Thanks
You have to know simulator and devices have different cpu types, when you build Xcode will build the app and link the libraries according to the target type.
From the error info, it seems your framework only provide the x86_64 architecture (for simulator), you should build your framework for the device architecture (arm64) instead !
looks like I am not the first, who is asking about this issue but I need to try. Does anybody encountered this problem?
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_GSDK_GTMSessionFetcher", referenced from:
objc-class-ref in gpg(GPGClearcutLogger.o)
"_OBJC_CLASS_$_GSDK_GTMSessionFetcherService", referenced from:
objc-class-ref in gpg(GIPNetworkImage.o)
"_GTMMethodCheckMethodChecker", referenced from:
+[NSDictionary(GTMNSDictionaryURLArgumentsAdditions) xxGTMMethodCheckMethodNSString32] in libGoogleToolboxForMac.a(GTMNSDictionary+URLArguments.o)
+[NSDictionary(GTMNSDictionaryURLArgumentsAdditions) xxGTMMethodCheckMethodNSString33] in libGoogleToolboxForMac.a(GTMNSDictionary+URLArguments.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
It looks like, some Google Play dependency is causing it, if I got it right. I tried to switch some values in XCODE recommended in other threads with similar issue. Namely build settings -> architectures, valid architectures, supported platforms, base sdk, active architecture only. Also no changes, still the same error during linking. cocoapods are installed
I use XCODe 8.1.
Any suggestions?
I managed to solve it by myself. The key is to edit the pod file like this (tested with the unity 5.3.6f1, GPG games plugin 0.9.34 and xcode 8.1):
platform :ios, '8.0'
target 'Unity-iPhone' do
pod 'GooglePlayGames', '5.1'
end
then you need to run pod install and it works!
I am implementing google cloud messaging in my project, and i have setup cocoapods in my project. But when I run the project it generate error, this error is
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_SKProductsRequest", referenced from:
objc-class-ref in libGGLCore.a(GMRProductsRequest.o)
"_OBJC_CLASS_$_SKPaymentQueue", referenced from:
objc-class-ref in libGGLCore.a(GMRInAppPurchaseTransactionReporter.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation). I am using Xcode 7 and swift 2 and my pod version is 1.0.0.beta.2
Please help me, I am not able to solve this issue.
Read this post... After update to Xcode 5 - ld: symbol(s) not found for architecture armv7 or armv7s linker error
Basically you need to remove Build Active Architecture Only from all your static libraries' project build settings. Xcode added this with their update as it makes Xcode compile faster since it only requires Xcode to compile for the connected device, but it is causing problems in your case so you may remove it
I have add GameKit.framework and StoreKit.framework into Target>>General>>Linked Frameworks and Libraries.
clean project and build project.An error is solved
I have just added 64 bit support for my iPad app in Xcode. Before the update i was able to archive the app with no red errors. After i add arm64 in the build settings get 2 error preventing the archive:
*ld: warning: ignoring file /Users/****/Documents/mApp/****/Pixate.framework/Pixate, missing required architecture arm64 in file /Users/****/Documents/mApp/****/Pixate.framework/Pixate (3 slices)
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_Pixate", referenced from:
objc-class-ref in main.o
objc-class-ref in BaseView.o
objc-class-ref in BaseViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)*
I have checked the framework and it is showing in the frameworks in the project.
I am currently using Xcode version 6.3.2 (6D2105)
The problem is related to third party framework Pixate.framework.
This framework is not built for arm64. That's why you got these errors.
How to fix it: find the version of this framework that was built with arm64 or just build it yourself by getting code from GitHub