Symbols not found for Armv7 and Arm64 in MicroBlink framework - cordova-plugins

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.

Related

iOS: Twitter-OAuth library architecture problems

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?

Unsolvable Linkage error with openears when trying to run tests

I have been using openears for a while now with no problems. I imported the library into my project and the application compiles and runs.
The problem arose when I tried to create and run tests. The projects refuses to compile and issues the following linkage error:
Undefined symbols for architecture x86_64:
"_delete_voice", referenced from:
_unregister_cmu_us_slt in OpenEars(cmu_us_slt.o)
"_flite_feat_set_string", referenced from:
_register_cmu_us_slt in OpenEars(cmu_us_slt.o)
"_cg_synth", referenced from:
_register_cmu_us_slt in OpenEars(cmu_us_slt.o)
"_uttfunc_val", referenced from:
_register_cmu_us_slt in OpenEars(cmu_us_slt.o)
"_flite_feat_set", referenced from:
_register_cmu_us_slt in OpenEars(cmu_us_slt.o)
"_OBJC_CLASS_$_OENotification", referenced from:
objc-class-ref in RapidEars(OEContinuousModel+RapidEars.o)
"_ps_nbest", referenced from:
l015 in RapidEars(OEContinuousModel+RapidEars.o)
"_cg_db_val", referenced from:
_register_cmu_us_slt in OpenEars(cmu_us_slt.o)
.
.
.
"_OBJC_CLASS_$_OEPocketsphinxController", referenced from:
type metadata accessor for __ObjC.OEPocketsphinxController in OpenEarsClient.o
l031 in RapidEars(OEPocketsphinxController+RapidEars.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 have tried several approaches I found but still haven't found a solution.
Any help will be greatly appreciated.
Ok, managed to figure it out. Downloaded the latest Openears library and added it as before and it worked.
Apparently, You have to upgrade for it to work on Xcode 8.

Podfile error: Undefined Symbols for Architecture arm64

I updated my cocoapods version to 1.0 and am now getting a slew of errors regarding architecture. This is what my errors look like:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_Reachability", referenced from:
objc-class-ref in ReachabilityManager.o
(maybe you meant: _OBJC_CLASS_$_ReachabilityManager)
"_OBJC_CLASS_$_PBJVision", referenced from:
objc-class-ref in NewSpinViewController.o
"_PBJVisionPhotoImageKey", referenced from:
-[NewSpinViewController vision:capturedPhoto:error:] in NewSpinViewController.o
"_kReachabilityChangedNotification", referenced from:
-[NoInternetViewController viewDidLoad] in NoInternetViewController.o
"_PBJVisionPhotoThumbnailKey", referenced from:
-[NewSpinViewController vision:capturedPhoto:error:] in NewSpinViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I've spent hours trying to fix this by toggling settlings under build settings but nothing is working for me.
This is what I currently have for my Architectures
Anyone have any ideas?
Try this: delete derived data and compile again. Sometimes the pod libraries simply don't get compiled even you cleaned the project, this happened to me when I updated to cocoapods 1.0.1.

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

Mach-O Linker Error - files Imported(and checked) properly but still error?

I know there has been countless Mach-O Linker error posts and I have looked through at least a dozen trying to find the solution to my problem. Many solutions commented that I must "check the box" or check the compile sources to make sure my .m file was properly imported and yes, I did all of those. I have been at this for hours and I can't seem to make anything from the below error:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_JSQMessage", referenced from:
objc-class-ref in ChatView.o
"_OBJC_CLASS_$_JSQMessagesAvatarImageFactory", referenced from:
objc-class-ref in ChatView.o
"_OBJC_CLASS_$_JSQMessagesBubbleImageFactory", referenced from:
objc-class-ref in ChatView.o
"_OBJC_CLASS_$_JSQMessagesTimestampFormatter", referenced from:
objc-class-ref in ChatView.o
"_OBJC_CLASS_$_JSQMessagesViewController", referenced from:
_OBJC_CLASS_$_ChatView in ChatView.o
"_OBJC_CLASS_$_JSQPhotoMediaItem", referenced from:
objc-class-ref in ChatView.o
"_OBJC_CLASS_$_JSQSystemSoundPlayer", referenced from:
objc-class-ref in ChatView.o
"_OBJC_METACLASS_$_JSQMessagesViewController", referenced from:
_OBJC_METACLASS_$_ChatView in ChatView.o
"_kJSQMessagesCollectionViewCellLabelHeightDefault", referenced from:
-[ChatView collectionView:layout:heightForCellTopLabelAtIndexPath:] in ChatView.o
-[ChatView collectionView:layout:heightForMessageBubbleTopLabelAtIndexPath:] in ChatView.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Any help or advice as to a fix to the above error would be MUCH appreciated and would finally allow me to move on from this gripping road block. Thank you in advance!
I had the same error when using this library through Cocoapods. I noticed this warning message when executing pod install:
[!] The Application [Debug] target overrides the OTHER_LDFLAGS
build setting defined in `Pods/Target Support
Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the
CocoaPods installation
I added $(inherited) to OTHER_LDFLAGS in the build settings of my project and that fixed the problem!
Looks like you're missing a relevant 'Framework'. Does the documentation specify a required framework. I would guess that it needs the messaging one.

Resources