Apple Mach-O linker errors While Archiving My project - ios

I am trying to archive my First iOS Project and I get the following errors. It seems like there is something bugged with the Facebook SDK and Google Plus SDK which i have used for Authentication. I have come across similar questions on stackoverflow but none's solutions helped me. Any help would be appreciated. Thanks in advance.
<pre>
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_FBRequest", referenced from:
objc-class-ref in LoginViewController.o
"_OBJC_CLASS_$_GTMLogger", referenced from:
objc-class-ref in LoginViewController.o
"_OBJC_CLASS_$_GTLQueryPlus", referenced from:
objc-class-ref in LoginViewController.o
"_kGTLAuthScopePlusLogin", referenced from:
-[LoginViewController getInfoForGoogle] in LoginViewController.o
"_OBJC_CLASS_$_GTLServicePlus", referenced from:
objc-class-ref in LoginViewController.o
"_OBJC_CLASS_$_GPPURLHandler", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_GPPSignIn", referenced from:
objc-class-ref in LoginViewController.o
"_OBJC_CLASS_$_FBSession", referenced from:
objc-class-ref in AppDelegate.o
objc-class-ref in LoginViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
</pre>

The framework you are using is not arm64 ready, ie not for 64bit devices, you can either check if an updated framework is available, or exclude arm64 that from your build
Set the architecture in build settings to Standard architectures(armv7,armv7s)
Xcode 5 and iOS 7: Architecture and Valid architectures

Related

React Native zoom sdk ios error "Undefined symbols for architecture arm64: "_OBJC_CLASS_$_ZoomVideoSDKSessionContext""

I am adding react-native zoom SDK for audio/video calls from their official plugin Link
I have followed their documentation and installed SDK for ios. but when running the build from Xcode gets the following error.
Also according to their doc when we download the SDK for ios they will get two folders for device only and device and simulator, but these folders are not available in the downloaded zip.
can anybody have implemented the zoom SDK in react-native, can you tell me about its procedure?
Thanks in advance for your help
Edited Question for error code
Undefined symbols for architecture arm64: "_OBJC_CLASS_$_ZoomVideoSDKSessionContext", referenced from: objc-class-ref in libreact-native-zoom-video-sdk.a(RNZoomVideoSdk.o) "_OBJC_CLASS_$_ZoomVideoSDKVideoOptions", referenced from: objc-class-ref in libreact-native-zoom-video-sdk.a(RNZoomVideoSdk.o) "_OBJC_CLASS_$_ZoomVideoSDKAudioOptions", referenced from: objc-class-ref in libreact-native-zoom-video-sdk.a(RNZoomVideoSdk.o) "_OBJC_CLASS_$_ZoomVideoSDKInitParams", referenced from: objc-class-ref in libreact-native-zoom-video-sdk.a(RNZoomVideoSdk.o) "_OBJC_CLASS_$_ZoomVideoSDK", referenced from: objc-class-ref in libreact-native-zoom-video-sdk.a(RNZoomVideoSdkAudioHelper.o) objc-class-ref in libreact-native-zoom-video-sdk.a(RNZoomVideoSdkLiveStreamHelper.o) objc-class-ref in libreact-native-zoom-video-sdk.a(RNZoomVideoSdkSessionStatisticsInfo.o) objc-class-ref in libreact-native-zoom-video-sdk.a(RNZoomVideoSdkUserHelper.o) objc-class-ref in libreact-native-zoom-video-sdk.a(RNZoomVideoSdkUser.o) objc-class-ref in libreact-native-zoom-video-sdk.a(RNZoomVideoSdkSession.o) objc-class-ref in libreact-native-zoom-video-sdk.a(RNZoomVideoSdkShareHelper.o) ... ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Unable to create a archive build for Any iOS Device (arm64, armv7)

Product: Video SDKEnvironment: iOSSDK Version: v3.5.0.
I am trying a archive build with Build="Any iOS Device (arm64, armv7)". The build fails with
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_FlipperKitNetworkPlugin", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_SKIOSNetworkAdapter", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_FlipperKitReactPlugin", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_FKUserDefaultsPlugin", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_FlipperKitLayoutPlugin", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_SKDescriptorMapper", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_FlipperClient", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I could do device specific build (like arm64) and deploy to my iPhone and test it. That works.
But here, I'm trying to create an archive build so I can push the build to other registered iPhone devices of other team members.

IOS architecture 64bits

Our phonegap app builds fine for the iphone simulator but generates linker errors when building the app on an iphone. the only thing that changed was installing testflight and a test app.
We already removed testflight and the test app, but the linker errors remain.
Any ideas on how to fix this?
We're on xcode 6.2 and ordova 3.4.0
Errors:
ld: warning: ignoring file /Users/gusph/Library/Developer/Xcode/DerivedData/momitSHDApp-evgpydfzbrlcmzazjhmquxttnqnq/Build/Products/Debug-iphoneos/libCordova.a, file was built for archive which is not the architecture being linked (arm64): /Users/gusph/Library/Developer/Xcode/DerivedData/momitSHDApp-evgpydfzbrlcmzazjhmquxttnqnq/Build/Products/Debug-iphoneos/libCordova.a
Undefined symbols for architecture arm64:
"_CDVPageDidLoadNotification", referenced from:
-[CDVSplashScreen pluginInitialize] in CDVSplashScreen.o
"_OBJC_CLASS_$_CDVWebViewDelegate", referenced from:
objc-class-ref in CDVInAppBrowser.o
"_OBJC_CLASS_$_CDVInvokedUrlCommand", referenced from:
objc-class-ref in CDVFile.o
"_CDVLocalNotification", referenced from:
-[AppDelegate application:didReceiveLocalNotification:] in AppDelegate.o
"_OBJC_CLASS_$_CDVViewController", referenced from:
_OBJC_CLASS_$_MainViewController in MainViewController.o
objc-class-ref in CDVDevice.o
objc-class-ref in CDVFile.o
"_OBJC_METACLASS_$_CDVCommandDelegateImpl", referenced from:
_OBJC_METACLASS_$_MainCommandDelegate in MainViewController.o
"_OBJC_CLASS_$_CDVUserAgentUtil", referenced from:
objc-class-ref in CDVInAppBrowser.o
"_OBJC_CLASS_$_CDVCommandQueue", referenced from:
_OBJC_CLASS_$_MainCommandQueue in MainViewController.o
"_OBJC_CLASS_$_CDVPlugin", referenced from:
_OBJC_CLASS_$_NotificationsNode in NotificationsNode.o
_OBJC_CLASS_$_CDVConnection in CDVConnection.o
_OBJC_CLASS_$_CDVCamera in CDVCamera.o
_OBJC_CLASS_$_CDVBattery in CDVBattery.o
_OBJC_CLASS_$_CDVLogger in CDVLogger.o
_OBJC_CLASS_$_CDVContacts in CDVContacts.o
_OBJC_CLASS_$_CDVDevice in CDVDevice.o
...
"_OBJC_METACLASS_$_CDVViewController", referenced from:
_OBJC_METACLASS_$_MainViewController in MainViewController.o
"_OBJC_METACLASS_$_CDVCommandQueue", referenced from:
_OBJC_METACLASS_$_MainCommandQueue in MainViewController.o
"_CDVPluginHandleOpenURLNotification", referenced from:
-[AppDelegate application:handleOpenURL:] in AppDelegate.o
-[CDVInAppBrowser openInSystem:] in CDVInAppBrowser.o
"_OBJC_CLASS_$_CDVCommandDelegateImpl", referenced from:
_OBJC_CLASS_$_MainCommandDelegate in MainViewController.o
"_OBJC_CLASS_$_CDVPluginResult", referenced from:
objc-class-ref in NotificationsNode.o
objc-class-ref in CDVConnection.o
objc-class-ref in CDVCamera.o
objc-class-ref in CDVBattery.o
objc-class-ref in CDVContacts.o
objc-class-ref in CDVDevice.o
objc-class-ref in CDVAccelerometer.o
...
"_OBJC_METACLASS_$_CDVPlugin", referenced from:
_OBJC_METACLASS_$_NotificationsNode in NotificationsNode.o
_OBJC_METACLASS_$_CDVConnection in CDVConnection.o
_OBJC_METACLASS_$_CDVCamera in CDVCamera.o
_OBJC_METACLASS_$_CDVBattery in CDVBattery.o
_OBJC_METACLASS_$_CDVLogger in CDVLogger.o
_OBJC_METACLASS_$_CDVContacts in CDVContacts.o
_OBJC_METACLASS_$_CDVDevice in CDVDevice.o
...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
This linker error message is the key:
.../libCordova.a, file was built for archive which is not the architecture being linked (arm64)
Static and dynamic libraries under OSX and iOS are fat in that they can hold code for multiple CPU architectures. That library doesn't have the arm64 architecture and therefore cannot be used.
The solution is to get a version that does support arm64. If you are building that library then you are not including the CPU architecture when building it.
From this link:
This means that starting at that time, Cordova-based apps
should be built using a version of Cordova that has 64-bit iOS support.
The first version of Cordova to include 64-bit for iOS is 3.4.1.
Therefore, to meet these requirements of the Apple App Store, you should be
using at least version 3.4.1 of Cordova before this February deadline.
Make sure you are using a version of Cordova that has the 64bit architecture built in. You appear to be currently using one without (an old version).
remove arm64 from Valid Architectures of CordovaLib Targets,
Also set 'NO' to Build Active Architecture Only,
Make same settings to Main app.

GPUimage framework display error in device that has iOS 7.1

I am am using the GPUImage framework in my app. Its working great, But when i tried to run app in device that has iOS 7.1 its display following error.
ld: warning: ignoring file /Users/user/Library/Developer/Xcode/DerivedData/app-fhjyuaovocdkvnfdpxllwvwplxei/Build/Products/Debug-iphoneos/libGPUImage.a, file was built for archive which is not the architecture being linked (armv7): /Users/user/Library/Developer/Xcode/DerivedData/app-fhjyuaovocdkvnfdpxllwvwplxei/Build/Products/Debug-iphoneos/libGPUImage.a
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_GPUImageContrastFilter", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_GPUImageSaturationFilter", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_GPUImageExposureFilter", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_GPUImageAdaptiveThresholdFilter", referenced from:
objc-class-ref in ViewController.o
objc-class-ref in WSCall.o
"_OBJC_CLASS_$_GPUImageGrayscaleFilter", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_GPUImagePicture", referenced from:
objc-class-ref in ViewController.o
objc-class-ref in WSCall.o
"_OBJC_CLASS_$_GPUImageBrightnessFilter", referenced from:
objc-class-ref in ViewController.o
"_OBJC_CLASS_$_GPUImageSharpenFilter", referenced from:
objc-class-ref in ViewController.o
objc-class-ref in WSCall.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
It is working on Simulator and my other device which has iOS 7.0.3.
Should modify valid architectures armv7 => armv7s, arm64

Xcode get error when using Coapod

I'm using Cocoapod to get Global Lib. It works fine in the simulator, but it has some error when I build on my device:
Undefined symbols for architecture armv7s:
"_OBJC_CLASS_$_FBRequest", referenced from:
objc-class-ref in HomeViewController.o
"_OBJC_CLASS_$_SBJsonParser", referenced from:
objc-class-ref in IQRequest.o
"_AFNetworkingOperationFailingURLResponseErrorKey", referenced from:
___78-[IQRequest performQueueOperationWithRequest:withSuccessBlock:andFailedBlock:]_block_invoke39 in IQRequest.o
"_OBJC_CLASS_$_AFHTTPRequestOperation", referenced from:
objc-class-ref in IQRequest.o
"_OBJC_CLASS_$_AFHTTPClient", referenced from:
objc-class-ref in IQRequest.o
"_OBJC_CLASS_$_FBSession", referenced from:
objc-class-ref in ChooseDesignerViewController.o
objc-class-ref in IQUser.o
objc-class-ref in IQAppDelegate.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What has happened to my project?
It seems like your library isn't compiled for armv7s. If it's distributed as binary you'll have to ask the maintainer to rebuild it with an armv7s slice. If it's distributed as source code you have to check the projects build settings. I think you should look for valid architectures or something like that.

Resources