iOS: Twitter-OAuth library architecture problems - ios

I have an old objective-c application that can't run in iOS 11.0 devices. To solve this issue I have changed the architecture (from the build settings) to the standard architecture (the same as the answer of this SO issue) and the Build Archive Architecture Only is having YES for the Debug and NO for the others. The Twitter-OAuth library is included in this project. The build always fails because of those errors:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_OARequestParameter", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OAMutableURLRequest", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OADataFetcher", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OAToken", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OAConsumer", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
The version of this library is old (its architecture is not supporting 64 bit). When I replace it with the new version I got a lot of errors between them the errors on the top. I tried to keep the old version, I replaced the libOAuth.a with the new one and all the files mentioned in the errors with the new ones. But I'm still getting the same problem. I know that the best solution is to use the new Twitter SDK (via Fabric) but I wonder if I can keep this library and solve those architecture problems.
Can anyone guide me please?

Related

Symbols not found for Armv7 and Arm64 in MicroBlink framework

I'm getting the following error when building my project in Xcode 10.1 (I have to use this old version at work).
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_MBDocumentOverlayViewController", referenced from:
objc-class-ref in BlinkIdPlugin.o
"_OBJC_CLASS_$_MBMrtdRecognizer", referenced from:
objc-class-ref in BlinkIdPlugin.o
"_OBJC_CLASS_$_MBViewControllerFactory", referenced from:
objc-class-ref in BlinkIdPlugin.o
"_OBJC_CLASS_$_MBRecognizerCollection", referenced from:
objc-class-ref in BlinkIdPlugin.o
"_OBJC_CLASS_$_MBDocumentOverlaySettings", referenced from:
objc-class-ref in BlinkIdPlugin.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I'm getting the .framework and .bundle from the blinkid-ios sample in MicroBlink's github repository. I tried git-lfs pullbut nothing happened which leads me to believe that all lfs files were pulled(?). I'm also using cordova 7.1.0 (I also have to use this old version at work).
Any help appreciated.
For anyone encountering a similar issue in the future - this specific issue was caused by the change in the case in the name - MicroBlink was renamed to Microblink. Even though git-lfs pulled the files, Cordova couldn't see the actual framework.
Disclaimer: I work for the Microblink team that's behind the BlinkID library in question.

AWS IOS SDK Error Undefined symbols for architecture x86_64:

I get this error after using cocoapods with AWS SDK IOS:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_AWSInfo", referenced from:
objc-class-ref in libAWSCognitoIdentityProvider.a(AWSCognitoIdentityProviderService.o)
objc-class-ref in libAWSIoT.a(AWSIoTDataManager.o)
objc-class-ref in libAWSIoT.a(AWSIoTDataService.o)
objc-class-ref in libAWSIoT.a(AWSIoTManager.o)
objc-class-ref in libAWSIoT.a(AWSIoTService.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 solved my own problem.
When i created the project i selected to include unit tests for the project.
For whatever reason this conflicted with the cocoapod installation. When i created a new project without unit tests everything compiled correctly.
This could be a conflict between the two or I did not configure something properly either way it seems like units tests and cocoapods need some extra tinkering with.

Apple Mach-O Linker Error with Parse OBJC classes

Hi I have looked over similar questions and tried everything but I can seem to fix my code. Every time I try and archive it I get
Apple Mach-O Linker Errors for Parse User, Object, File, Query, Parse
and a linker command failed with exit code 1.
First I get an ld:
warning: ignoring file .., missing required architecture arm 64 in
file Parse.framework.Parse
Then the following errors:
Undefined symbols for architecture arm64: "_OBJC_CLASS_$_PFUser",
referenced from:
objc-class-ref in SignupViewController.o
objc-class-ref in LoginViewController.o
objc-class-ref in InboxViewController.o
objc-class-ref in EditFriendsViewController.o
objc-class-ref in FriendsViewController.o
objc-class-ref in CameraViewController.o "_OBJC_CLASS_$_PFObject", referenced from:
objc-class-ref in CameraViewController.o "_OBJC_CLASS_$_PFFile", referenced from:
objc-class-ref in CameraViewController.o "_OBJC_CLASS_$_PFQuery", referenced from:
objc-class-ref in InboxViewController.o "_OBJC_CLASS_$_Parse", referenced from:
objc-class-ref in AppDelegate.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code
1 (use -v to see invocation)
Please can someone with experience of this issue help me as I've spent about 3 hours researching this already.
I know it's something to do with the Linked Frameworks but I don't get what?
Things I've tried:
Updating to the latest version of Parse Framework.
Including various other Frameworks that might have been missing.
Changed the Architectures in Build Setting to Standard Architectures (armv7, arm64)
Changed Build active Architecture only to No.
I just want this X-code project to build and archive with 64-bit support but there seems to be something fundamentally wrong with how I'm implementing Parse for 64-bit

Twitter library error : Undefined symbols for architecture x86_64:

I am using TwitterLibrary in one of my applications, Twitter log-in is working perfectly but as per the apple's requirement new apps can be submitted with 64bit support and build with IOS8+ SDK, so for this I added "armv7 armv7s arm64" in valid architecture in build setting in my target and project.After adding "arm64" I am facing following erros
"_OBJC_CLASS_$_OAConsumer", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OADataFetcher", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OAMutableURLRequest", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OARequestParameter", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
"_OBJC_CLASS_$_OAToken", referenced from:
objc-class-ref in SA_OAuthTwitterEngine.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: unable to open executable '/Users/my-name/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphonesimulator/MYAPP.app/MYAPP'
I thing twitter library does not provide 64 bit support,its my guess i am not sure about it, but how can I remove twitter errors is there any way to short these errors?
Thanks a lot in advance..
Finally come to a solution Added latest Twitter-IOS-SDK using Twitter's new Xcode plugin named "fabric". New SDK is compatible with 64bit.
https://dev.twitter.com/twitter-kit/ios/configure

Bluetooth Related Linker Errors in XCode 6.1.1

I'm relatively new to iOS development. I'm not sure what to do about resolving the following errors that I believe are due to referencing a bluetooth library. What can I do to debug/fix this?
Undefined symbols for architecture armv7:
"_CBCentralManagerScanOptionAllowDuplicatesKey", referenced from:
_nclSStartScan in libNCLiOS.a(nclCb.o)
"_CBAdvertisementDataManufacturerDataKey", referenced from:
-[Boss centralManager:didDiscoverPeripheral:advertisementData:RSSI:] in libNCLiOS.a(nclCb.o)
"_OBJC_CLASS_$_CBUUID", referenced from:
objc-class-ref in libNCLiOS.a(nclCb.o)
"_OBJC_CLASS_$_CBCentralManager", referenced from:
objc-class-ref in libNCLiOS.a(nclCb.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I haven't done Bluetooth related development on IOS but the messages might be related to the missing Bluetooth framework in the project files.
Have you added them ?
IOBluetooth.framework
IOBluetoothUI.framework

Resources