ld: warning: ignoring file /Users/sayan/Desktop/ProjectAtanu/Omlis/Custom Classes/ZBarSDK/libzbar.a, missing required architecture x86_64 in file /Users/sayan/Desktop/ProjectAtanu/Omlis/Custom Classes/ZBarSDK/libzbar.a (3 slices)
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
objc-class-ref in HomeViewController.o
"_ZBarReaderControllerResults", referenced from:
-[HomeViewController imagePickerController:didFinishPickingMediaWithInfo:] in HomeViewController.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 am using latest Xcode and iOS version in my App.
Any help much appreciated!
I was able to build a universal library with support for the simulator by following the instructions here: Build fat static library (device + simulator) using Xcode and SDK 4+
I hope that helps you too.
or
up vote
USING PODS
pod 'ZBarSDK'
OR
Recompile ZBar for iphone 5. You can download recompiled ZBAR from here to skip the following
Steps
Download the source code (you must have Mercurial for mac):
Open Terminal and run following commands
a. hg clone http://zbar.hg.sourceforge.net:8000/hgroot/zbar/zbar
b. cd zbar
c. hg checkout iPhoneSDK-1.3.1
d. open iphone/zbar.xcodeproj
In the xcode project edit the "libzbar" scheme and select Release in Build configuration
Go to Build Settings set following Architectures
a. Architectures - >Standard architectures(armv7,armv72,arm64)
b. Valid Architectures -> arm64,armv7 armv7s
Compile libzbar for device AND for simulator, here the configuration:
Find the compiled libzbar.a and go in the folder using Teminal.app,
In My Case : /Users/kappe/Library/Developer/Xcode/DerivedData/zbar-gyozyrpbqzvslmfoadhqkwskcesd/Build/Products
In this folder you you should have two sub folder Release-iphoneos and Release-iphonesimulator
using xcode command line tools build your universal lib:
lipo -create Release-iphoneos/libzbar.a Release-iphonesimulator/libzbar.a -o libzbar.a
Now you can use the libzbar.a created, both in device and simulator.
Ref : http://www.federicocappelli.net/2012/10/05/zbar-library-for-iphone-5-armv7s/
Related
Just removed Crashlytics from the podfile, then added it as a Swift Package. Built for an actual device just fine. But when I switch to the Simulator, no go (and tried deleting Derived folders etc - no change).
Another dev using Xcode 13.2.1 on an Intel Mac can build for the Simulator just fine.
Doesn't matter if I delete DerivedFolder then build first for Simulaor or for device - when I get to Simulator it always fails same errors.
The Excluded Architectures for everything are arm64, Build Active Architure=YES
Xcode 13.4.1
Mac: Monterey 13.4
ld: warning: ignoring file .../Build/Products/Debugging-iphonesimulator/FirebaseCrashlytics.o, building for iOS Simulator-x86_64 but attempting to link with file built for unknown-arm64
... (12 others)
ld: warning: ignoring file .../Build/Products/Debugging-iphonesimulator/FirebaseInstallations.o, building for iOS Simulator-x86_64 but attempting to link with file built for unknown-arm64
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_FIRCrashlytics", referenced from:
objc-class-ref in <SomeFile>-8e51ce451b9a03f7582a9e76a8faf6a6.o
objc-class-ref in <SomeFile>-e71967da3e8b662633c9220e635ffc51.o
"_OBJC_CLASS_$_FIRApp", referenced from:
objc-class-ref in SSLog-8e51ce451b9a03f7582a9e76a8faf6a6.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 posted to Firebase Issues but this issue didn't ring a bell. However, I did trip on an Apple TN on M1 Mac build issues, and doing what they suggested revolved the issue.
It appears that when Xcode builds Packages the rules it follows may not use the target's build settings. I believe the issue was related to Excluded Architectures.
For me the issue was fixed by making sure Xcode was running in Rosetta mode.
I developed a react native app using react-native-firebase library.
I want to set my app icon, so I used this library:npm install -g yo generator-rn-toolbox from here.
When I try to build the project I receive this error:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_RCTSRWebSocket", referenced from:
objc-class-ref in libReact.a(RCTInspectorPackagerConnection.o)
"_OBJC_CLASS_$_RCTReconnectingWebSocket", referenced from:
objc-class-ref in libReact.a(RCTPackagerConnection.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
How do I fix this ?
I fixed it by manually adding the RCTWebsocket library:
find the RCTWebsocket project: open -R node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj
Drag it into xcode under your projects Libraries folder
on your project, select your project target, then goto "Build phases" --> "Link Binaries With Libraries" --> "+"
Search for libRCTWebSocket.a and add it
your project should build now. If libRCTWebSocket.a in step 4 is not there, try to build the project first.
I had the similar issue for iOS 12, XCode 10.
For those that may help (and avoid losing days like me..),
i had to add the libRCTWebSocket.a and the libfishhook.a binaries in the YourProject -> Targets -> YourProject -> Link Binary With Libraries list
I was able to build the app by placing libRCTWebSocket.a before libReact.
I am too much of this Static Libary thing in Xcode 4.X
Following are the steps that I usually do..
1)For making a static libary , I open Xcode , new , static libary , and then by adding some classes in the project .. then build phases ->copy headers -> add all headers here one by one,and then i build up the project
when run on ios simulator -> static libary does not created ..(red color)
when run on ios device - > static library gets created..
2) for using the library..
I make a new Project , then i "add files to project" and also "copy if needed" the following 2 files..
.a file (i.e.static library)
folder consisting the headers of library files
Now when I try to import a header file in my project , there is no "suggestion" appear ...but still i write and it does not give an error "header file not found"...
but when I run the project it gives the error like:
ld: warning: ignoring file
/Users/Subodh/Library/Developer/Xcode/DerivedData/LibraryImporting_test-cbchzzjdcehzvfgwmzbvifrnrwgk/Build/Products/Debug-iphoneos/libLibraryImporting_test.a,
file was built for archive which is not the architecture being linked
(i386):
/Users/Subodh/Library/Developer/Xcode/DerivedData/LibraryImporting_test-cbchzzjdcehzvfgwmzbvifrnrwgk/Build/Products/Debug-iphoneos/libLibraryImporting_test.a
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_LibraryImporting_test", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Plz guide me....point out if get wrong at some step....help plz
it will be better if someone mentions all the steps as i have done in making a library and using it in a project...it will be a great help
The key to the issue is this part of the error message:
file was built for archive which is not the architecture being linked
(i386)
You have imported the library built for the iPhone Device (ARM) by the look of it, and you are trying to use it in the iPhone Simulator which is i386.
What I would recommend is using an Xcode Workspace where the static library project is one of the projects and the iPhone app is another project. This way Xcode will build the library, as required, for Debug/Release and Device/Simulator.
I have a project which uses the zbar-sdk (a barcode scanning library).
After updating my machine to xcode 4.5 and ios6sdk I am having some troubles.
I was able to build to the simulator without touching anything about my project. This is using the latest zbar 1.2 library.
I then wanted to build to my ios6 device for testing, and thats when I got an error.
After some googling on the zbar developer forum, I seen that I needed to get the zbar source and build the libzbar.a for armv7 and armv7s as this has not yet been done by the zbar developer.
See - http://sourceforge.net/projects/zbar/forums/forum/1072195/topic/5728912
So I did this, re-imported the updated libzbar.a into my project. I then built for my device, and it worked! I was able to get my app onto my testing device and the zbar barcode library worked fine.
I thought that was the end of it, but unfortunately not.
I then tried to build to the simulator (ios6) again, and thats when it fails.
No matter what I cannot get this project to build for both the device and simualtor at the same time and with the same settings :(
My libzbar.a project settings when building my own libzbar.a file:
Architecture: Standard (armv7, armv7s) $(ARCHS_STANDARD_32_BIT)
Build Active Architecture Only: No
Valid Architectures: armv7 armv7s
And my project settings (for myapp) as:
Architecture: Standard (armv7, armv7s) $(ARCHS_STANDARD_32_BIT)
Build Active Architecture Only: No
Valid Architectures: armv7 armv7s
Base SDK: iOS6
iOS Deployment Target: iOS 5.0
And the error when trying to build to the simulator:
ld: warning: ignoring file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a, missing required architecture i386 in file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a (2 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
objc-class-ref in mycontroller.o
"_ZBarReaderControllerResults", referenced from:
-[mycontroller imagePickerController:didFinishPickingMediaWithInfo:] in mycontroller.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I have tried tweaking the libzbar.a project settings (e.g. build active architecture set to "YES") but this just results in neither the simulator or device working.
The fact that it works on the device but not the simulator makes me thing there is some weird architecture/project setting causing this.
Any help much appreciated!
I doubt this is the right answer but it worked for me, I compiled the new libzber.a using architectures: i386 armv6 armv7 armv7s in that order you also need to specify valid architectures as the same values. Again this is what worked for me with a recent release I needed to get out A.S.A.P. Both are found in Target -> Build Settings -> Architecures.
Also note: $(ARCHS_STANDARD_32_BIT) needed to be removed from the settings.
I fixed a similar issue by setting the iOS6 simulator architecture under OTHER_LDFLAGS in Target->Build Settings.
I forgot that I had a different command line argument for separated archituctures so I had to manually state the simulator
Yesterday I updated new Xcode 4.5, and I got an error in my build and I am not sure how can I even fix this.
Everything works fine if I build in simulator, but when I try to build for Archive for example, i get this:
ld: warning: ignoring file /Users/corotchi/Library/Developer/Xcode/DerivedData/NJR_IR-ftjwhrqtxwedihfjrbjikbqqttkx/Build/Products/Release-iphoneos/libCordova.a, file was built for archive which is not the architecture being linked (armv7s): /Users/corotchi/Library/Developer/Xcode/DerivedData/NJR_IR-ftjwhrqtxwedihfjrbjikbqqttkx/Build/Products/Release-iphoneos/libCordova.a
Undefined symbols for architecture armv7s:
"_OBJC_CLASS_$_CDVURLProtocol", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_CDVViewController", referenced from:
_OBJC_CLASS_$_MainViewController in MainViewController.o
"_OBJC_METACLASS_$_CDVViewController", referenced from:
_OBJC_METACLASS_$_MainViewController in MainViewController.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
and more errors bellow, which are the same
Everything worked fine until u updated the Xcode, I had another issue before where I read the formums that I have to remove the "ARMV6" from the build settings, cause it is not supported anymore in new IOS, and after that I get this reference issue.
I appreciate any help,
THanks!!!!
Remove armv7s from Valid Architectures from both your project and Cordova(phonegap) project. Also set iOS Deployment target 4.3 or above in both project and Cordova(phonegap) project. After that Clean and Clean Build Folder. This will solve the problem.
If you also take out armv7s from the build settings, you should get it to build for you.
Edit: As per below: Fix can be found here via PhoneGap: https://issues.apache.org/jira/browse/CB-1360
This is a bug already fixed at Cordova 2.2.0
https://issues.apache.org/jira/browse/CB-1360
Change the Buid setting ---> Architecture ---> Build Active Architecture only ---> Yes
This solved my issue for using old cordova versions in new Xcode 5