Xcode linker error- armv7 slice architecture - xcode

Having archive error when want to compile into .ipa
I am using:
Mac OS X Leopard 10.6.7
Xcode 4.3 stable.
Clean and Build in simulator no error.
But
Archive for Adhoc under Latest iOS SDK (iOS 4.3) fail.
Error is as below:
Apple Mach-O Linker Error
setenv IPHONEOS_DEPLOYMENT_TARGET 4.3
..
ld: in /Users/bird/Desktop/IPHONE/test/Classes/Libraries/FlurryLib/libFlurry.a, file is universal but does not contain a(n) armv7 slice for architecture armv7
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exist code 1
Wondering way to solve it.

It looks like libFlurry does not support armv7s.
click on the Project, go to Build Settings -> find "valid architectures" and remove "armv7s" from the list.

Related

impossible to build flutter on device or simulator in my mac

after two week... I successed upload xcode and catalina OS , zsh ... all could be good but have always error and can't launch my app on my physical device or simulator. Always error after Xcode build.
Things interesting, I remove App_review package from pubspec.yaml but I have always error with it...
If I launch flutter example it works, but If I use certain package like admob who worked before, or app review I have this errors. I can remove app_review package but remove ad mob no...
Edit: I remove all packages who show error, but have always this error
Here is my physical device error :
Xcode's output:
↳
ld: framework not found FBLPromises
clang: error: linker command failed with exit code 1 (use -v to see invocation)
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Constructing build description
Here is the error when I use simulator :
Xcode's output:
↳
ld: framework not found FBLPromises
clang: error: linker command failed with exit code 1 (use -v to see invocation)
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Constructing build description
warning: Mapping architecture armv7 to i386. Ensure that this target's Architectures and Valid Architectures build settings are configured correctly for the iOS Simulator platform. (in target 'in_app_purchase' from project 'Pods')
warning: Mapping architecture arm64 to x86_64. Ensure that this target's Architectures and Valid Architectures build settings are configured correctly for the iOS Simulator platform. (in target 'in_app_purchase' from project 'Pods')
warning: Mapping architecture arm64 to x86_64. Ensure that this target's Architectures and Valid Architectures build settings are configured correctly for the iOS Simulator platform. (in target 'Runner' from project 'Runner')
warning: Mapping architecture armv7s to i386. Ensure that this target's Architectures and Valid Architectures build settings are configured correctly for the iOS Simulator platform. (in target 'Runner' from project 'Runner')
warning: Mapping architecture armv7 to i386. Ensure that this target's Architectures and Valid Architectures build settings are configured correctly for the iOS Simulator platform. (in target 'Runner' from project 'Runner')
Open Runner.xcodeproj with xCode in ios folder, choose File menu, then select "Project Settings...". In Build System, choose Legacy Build System and run again.
I have select legacy build system
, now I have this last error
=== BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Debug ===
ld: framework not found FBLPromises
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Please see this thread and ensure that you are not accidentally overriding the VALID_ARCHS build setting: What does warning "Mapping architecture arm64 to x86_64" mean?

my first mac os x program, build error. (xcode 6.2, object-c helloworld.m)

ld: warning: ObjC object file (/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/CoreService.framework/CoreService) was compiled for iOS Simulator, but linking for MacOSX
ld: framework not found CoreImage for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I've encountered the same problem. At last I downgrade to xcode 6.1

xcode 6.1 - Undefined symbols for architecture x86_64 (zbar)

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/

How to organize XCode project structure with library, unit tests and iOS app?

I'd like to have code with XC tests (the tests are launched on Mac) and iOS app that uses that code. I'm having:
One workspace
Two projects
2.1. Project 1: Mac OS static library (code + tests to run on Mac)
2.2. Project 2: iOS app that uses Project 1 code
The problem is that library is build for x86_64 platform and iOS app fails to link as it's built for i386 platform (to run in iOS simulator):
ld: warning: ld: warning: ld: warning: ignoring file
/Users/asmirnov/Library/Developer/Xcode/DerivedData/iFileSystem-colswwvuefyumkclybhsyoymndun/Build/Products/Debug/libFileSystem.a
...
clang: error: linker command failed with exit code 1 (use -v to see invocation)
How can i do it?
PS. Should i use "iOS static library" Project type instead?
I've solved it for me case and probably it can be useful for others.
Create 2 targets instead of default 1 target (and 2 products) for library - both Mac OS (to be used for unit tests on dev machine) and iOS (to be used in iOS app). See Base SDK in target build settings.

xcode 4.5 - symbols not found for architecture i386 (zbar)

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

Resources