Apple Mach-O Linker (Id) Error (wechat) - ios

I added a wechat login to my xcode. However, these errors worked.
I do not know how to fix this error. please help me.
Apple Mach-O Linker (Id) Error
"__wechatstore",referenced from:
_Wechat__wechatstore_m13_992 in Bulk_Assembly-CSharp_1.o
_Wechat_wechatstore_m13_995 in Bulk_Assembly-CSharp_1.o
(maybe you meant: _Wechat__wechatstore_m13_992)
Symbol(s) not found for architecture arm64
Linker command failed with exit code 1 (use -v to see invocation)
Activity Log Complete

the message means that the symbol __wechatstore (which is likely a pointer to data structure) can't be found in any arm64 binary supplied to the linker. So there are a couple things that could be going wrong:
the Library with this symbol might not be getting included in compilation. (when build fails in Xcode, go to the 'report' tab in navigator, click on the failing build, and check out the failing "Link ..." task
the Library might be included but not be compiled for arm64. Now that I think of it, I think this is the most likely case. arm64 support is a newer requirement from apple to support iPad Pro. I'd be willing to bet that the library probably only includes armv7. you can find out which architectures are included by running the file command on the library.
A possible temporary solution is to stop compiling for arm64, and try out just compiling armv7: to do that go to Project > Build Settings > Architectures > Architectures and change from $(ARCHS_STANDARD) $(ARCHS_STANDARD) to armv7. (nb: idk but I wouldn't try to submit a binary without the proper architectures for the appstore)

Related

Apple Mach-O linker error _OBJC_CLASS_$_FIRInstanceID

I've been trying to implement Firebase Notifications to a project that has alot of targets (like 13). I've been struggling but finally made it work on my test device, being able to show notifications when sent by an app called Postman.
The thing is I installed the frameworks by not using cocoapods because whenever I tried to do Pod install, my project couldn't build forcing me to rollback and try it again. So I opted to use this tutorial: https://www.mokacoding.com/blog/setting-up-firebase-without-cocoapods/
The app was working fine so I tried to archive it, to publish to testflight, and people told me to always use the Generic iOS Device when publishing to Testflight, so the application works on every device and not only on the one I'm testing.
But when I tried to build the project but on a Generic iOS Device I get the error:
Undefined symbols for architecture armv7s:
"_OBJC_CLASS_$_FIRInstanceID", referenced from:
objc-class-ref in MyINFOAppDelegate.o
"_OBJC_CLASS_$_FIRApp", referenced from:
objc-class-ref in MyINFOAppDelegate.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
Not being able to archive and send it to testflight.
What should I do? Already saw a ton of posts of things I did but not able to solve :(
Make sure that the Architectures Build Setting does not include armv7s. By default, Architectures is defined to $(ARCHS_STANDARD) which maps to "armv7 arm64"
Firebase binary distributions don't include armv7s - only armv7, i386, x86_64 and arm64.

Xcode Linker issues

Im writing to you as I am deeply in need of some assistance.
I'm trying to compile an app to my iPhone from Xcode, however, I keep encountering the issue of having this error come up when I press run:
ld: warning: directory not found for option '-F2'
ld: '/Users/[My-name]/Documents/XCode Projects/Store Testing Projects Here/BallGame 1.1/StartApp.framework/StartApp(STAJsonAd.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Now, I have checked and made sure that both my framework search paths and Library search paths are both empty. This is why I am having such an issue, I cannot for the life of me figure out the issue here! Why is Xcode trying to link something that is not specified to link to!
Thanks in advance, cheers.
Do you have more than one TARGETS?
You can change the value in Build Settings→Build Options→Enable BitCode to NO.

SQLCipher for iOS, running on armv7s and armv devices

So I've had some headaches today trying to solve this one. I have SQLCipher integrated into an iOS application and before I go further, here are my architecture build settings:
As I understand it, this should only build for an armv7s device (such as a iPhone 5), and when trying to run on a armv7 device I quite rightly get this error:
So I try changing the project's build architecture to Standard (armv7s, armv7) and build. This still runs as expected on the armv7s device, but on a armv7 device I get these linking errors:
So naturally I check out the build settings for the library throwing these errors, and they both have armv7 and armv7s in the valid architecture setting, so does anyone know why am I getting those build errors on the armv7 device? I am missing something?
Here are the build settings for the libraries I'm using (openssl-xcode and sqlcipher):
To fix this read the comments above from Stephen and then I did a project clean and rebuilt it.

What exactly is crt1.3.1.o

I'm using xcode 4.5 My Base SDK is 6.0 and my deployment target is 5.1. When I try to build for release or profiling I get this little gem of an error.
ld: file is universal (4 slices) but does not contain a(n) armv7s slice: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib/crt1.3.1.o for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Now....
I have seen this message posted on stackoverflow but Im still none the wiser.
What exactly is this crt1.2.1.o thats causing all the fuss?
Can I modify it somehow to kill my error?
And finally it has been suggested that I simply set build for active architectures only. What are the implications of doing this?
Thanks
The crt1.3.1.o file contains the startup code for the C runtime library. This initializes the runtime, calls global initializers and finally calls the main function.
Something must be amiss with your project settings. You are compiling for armv7s as well, but the libraries are being linked from the iOS 5.1 SDK which doesn't support the armv7s architecture yet.
I had this same issue, I removed armv7s from valid architectures in build settings and left only armv7, after that I could archive my project

Facebook Connect SDK with armv7 Architecture? :(

Recently built an iPad Application using the Facebook Connect SDK. It was recommended to me that i change the architecture of the project to armv6 to allow the Facebook Connect SDK to work.
After changing the project to armv6, it works fine on the simulator and device, however when i try to submit the application to iTunes Connect I receive the following error whilst submitting:
iPad: application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv7
So, I done some research and a simple alteration of the architecture (as follows) 'should' fix the problem:
However, the project fails to build with the following error(s):
ld: warning: ignoring file PROJECT/facebook-ios-sdk/build/facebook-ios-sdk.build/Release-iphoneos/facebook-ios-sdk.build/Objects-normal/armv6/libfacebook_ios_sdk.a, file was built for archive which is not the architecture being linked (armv7)
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_Facebook", 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)
Someone correct me if i'm wrong, but it seems that iTunes Connect won't accept an iPad app binary without armv7, and the Facebook SDK won't allow the app to be build with armv7, right?
The only viable solution is enable the Facebook Connect SDK to be build with armv7 to which i've had no success with, i've read plenty of forums and posts that don't really come up with a solution that openly works.
I've been struggling on this for about 7 hours and i honestly don't know what else to do.
Has anybody submitted an iPad only app with the Facebook Connect SDK included? Would be interested to see what settings you have for your project.
Thanks guys, any help would be greatly appreciated.
Instead of waiting for the new release of Facebook SDK, you can include the Facebook Source code in to the project then compile. It should work for armv7 architecture.

Resources