Unable to link ZBar SDK with Xcode 5 - ios

Downloaded ZBar
Imported the contents in to the group.
Added library file libzbar.a in build phases.
But when I'm tried to build (both 32 bit & 64 bit), it got the follower linker error. I have attached the screenshot of the setup in the bottom of the post.
How can I make ZBar to be flexible with both (32bit and 64 bit) Architecture.

Change "armv7, armv7s" to "armv7" only in Build Settings,

I think I found an answer to your problem just yesterday:
When I was compiling/running in simulator (64bit) or trying to create an archive with the zbar sdk (I'm using the beta 1.3.1 one), the program crashes with the same errors because of this 64bit-structure. Rest worked fine.
So I selected my project in the navigator and clicked on the project (not the target) and then Build Settings. I switched the options to ALL and COMBINED. Then I selected the drop-down-menu in Architectures / Architectures. You should see the Debug and Release options. Edit both of them and replace the $(ARCHS_STANDARD) with $(ARCHS_STANDARD_32_BIT). Now you should be able to run your project on all simulators.
One important point: I haven't tried this solution on a real 64bit device (iPhone 5s) jet. So I don't know if there might be problems with this fixing. If someone got issues, please tell us here.

ZBar SDK doesn't compile when you select the iOS Simulator . It runs on Device only .

Related

xCode6 > testFlight "Missing 64-bit support "

Been all around with this one, still needing help
1) In xCode when I am archiving to submit to TestFlight I get the following error
2) I have researched and changed the architecture to Arm64 and the Debug to Yes The Build to No
The build completely Fails
3) & I get the LLVM Warning
So I change the optimization Level from Fastest to Fast
4) Normally I could build to my phone / unplug it and then Archive.
But I can't get as far as a build to my phone anymore. This is a project coming from Unity that has worked well in the past.
I work with AR some bundles that now give errors so I take them off
I also add the Core Text Framework to get rid of the Mach-O errors
I'm running the latest Unity the latest xCode in hopes of bug fixes
I have even tried reverting to older version of Unity
Thanks
~ Be
You should use latest version of unity and Xcode. When you build your project in unity, change architecture type to universal in player setting.

Old iOS app doesn't work on xcode 5

I have an xcode project created on February 2012.
I am trying to run it in emulator on Xcode 5 but I got this error: "Choose a destination with a supported architecture in order to run on this device".
I also tried to change the development release but it doesn't work. Anyway if I click on Product -> Build it says: build Succeeded.
In the emulator I need a code signing ? Because in the project there is a folder cert with various certificate.
Thanks.
Go to the project in the Navigator on the left.
Then choose Build Settings and use the search box to search for Architectures.
This'll show you the build architectures setup for the app.
See if you have references to armv6 in there. I'm pretty sure they removed support for below armv7 in Xcode 5.x.

No architectures to compile for (ARCHS=, VALID_ARCHS=armv7 armv7s)

I am using Xcode 4.5.2 and have a project which cannot be compiled for an iPhone running iOS 6.0.1 though other projects compile fine with the same settings as shown in the picture below.
Any ideas on how to solve this?
You're probably using some third party lib that doesn't yet support armv7s architecture. You can just remove armv7s from your settings. Your app will still be able to run on iPhone 5 although it might not be taking full advantage of the new architecture.
If on XCODE 12 just goto Build Settings search for VALID_ARCHS. Under the User-Defined section select Valid Architectures and click Delete.
Set valid architecture for iOs simulator to armv7 and armv7s.( simulators are 32 bit ).
for device set to arm64 (64 bit all new ios device).

Xcode and Qt4iOS error while doing build

I got this error when I want to build project that is using Qt4iOS and Xcode 4.2.
Problem is that when I was building project in Qt my GCC compiler was set to an x86.
And system where I am having Xcode is x64 but yesterday was working everything fine. Now suddenly I got this error. And I have tried to build my Qt project with x64 compiler and still I am having the same error.
Any idea what went wrong?
Maybe just following the instructions would help? You waste everyone's time when you don't follow them. In particular, this question is answered by:
"The Qt4iOS SDK has been built as a ‘Universal binary’, containing linkable object code for both ARM (device) and x86 (simulator) targets. When building the application project, it will need to be built for either the device or the simulator. When building for the simulator, the mkspec will need to be specified when running qmake eg.
Xcode 4.2.x (and earlier):
/Developer/Qt4iOS/qt‐everywhere‐ios‐gles2‐4.8.1/bin/qmake animatedtiles.pro –spec qpa/macx‐iossimulator‐clang‐legacy
Xcode 4.3.x (and later):
/Developer/Qt4iOS/qt‐everywhere‐ios‐gles2‐4.8.1/bin/qmake animatedtiles.pro –spec qpa/macx‐iossimulator-­clang"
According to your comments it looks like you haven't used the x86 compiler for building the app for the simulator (your library is armv7 atm).
Try to add the simulator compiler as new toolchain in Qt Creator (located at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++) like you did for the device compiler and use the new one for your next simulator build.
You can check the resulting library with lipo again.

"Warning: iPhone apps should include an armv6 architecture" even with build config set

It's been a while since I've had to adjust project build settings. After upgrading to a recent SDK I'm having trouble building my ad hoc distribution configuration.
Build generates this warning and error:
warning: iPhone apps should include an armv6 architecture (current
ARCHS = "armv7")
iPhone/iPod Touch: application executable is missing a required
architecture. At least one of the following architecture(s) must be
present: armv6 (-19033)
However in my project I thought I had things set correctly:
Architectures is: Standard (armv6 armv7)
Base SDK: Latest iOS (currently set to iOS 4.2)
Valid Architectures: armv6 armv7
I have cleaned all targets.
I appreciate any tips.
If using Xcode 4.2 or higher, try the following:
Click your Project name (in the left column), followed by the Target:
Click the 'Build Settings' tab (in the right column):
Click the 'Release' or 'Distribution' row under 'Architectures', and choose 'Other...':
Double click the highlighted row named '$(ARCHS_STANDARD_32_BIT)' in the popover that appears, and replace it by typing 'armv6'. Then add a new row with the plus button in the bottom left of the popover, and type 'armv7', then click Done:
Update: you should add armv7s to target the iPhone 5 as well. (And drop armv6 if building with Xcode 4.5 or higher, which no longer supports armv6.)
That's it. You should now be able to build/archive without generating errors.
If it still doesn't work, see this answer from justinxreese, which suggests adding entries for armv6 and armv7 under "Required Device Capabilities" in your info.plist file.
If you uncheck "Build Active Architecture Only", then it will build all the valid architectures.
Update: This is no longer applicable as of Xcode 4 - follow Nick's instructions for Xcode 4 and later.
I had this problem even after following the accepted answer and found the following to work:
In your Info.plist, add an entry for Required Device Capabilities. This should be an array and will have two entries.
Item 0 : armv6
Item 1 : armv7
It will look like this:
In addition to Nick's answer about Xcode 4.2, you may also need to review your info.plist file. It seems as if new projects started in Xcode 4.2 by default specify 'armv7' in the 'Required Device Capabilities'. You'll need to remove this if wanting to support devices that run armv6 (e.g. the iPhone 3G).
Delete armv7 from the 'Required device capabilities' in yourProjectName-Info.plist
An ios 6 update
Changes in Xcode 4.5.x for ios 6
Xcode 4.5.x (and later) does not support generating armv6 binaries.
Now includes iPhone 5/armv7s support.
The minimum supported deployment target with Xcode 4.5.x or later is iOS 4.3.
I had this problem too. I just set my deployment target to 4.3 and left only armv7 architecture and it worked. At point almost everyone has 5, so 4.3 is fine.
for me it not work with every answer. but I try TARGETS > Architectures > Debug and add a new row with the plus button, and type 'armv6'(with out '), then click Done.
and finally CMD+B and then right click at PrjectName.app(in Products folder) > Open in Finder > Compress "PROJECT_NAME.APP" (in Debug-iphoneos) > Upload to AppStore
it's my screen setting.
if you have include project please config it all.
Hope your help.
After trying a mixture of these answers, I finally stumbled across making it work. Im so pissed off at Apple right now. Just another hour they made me waste. Here is my config.
I tried all the answers above ,none resolved my question. So I create a new project and diff the build settings one by one. Only "Alternate Permissions Files" is different.
The project build failed has a value armv7. Delete it then clean->build->archive . Succeed!
Hope can solve you question
Wow, I update/submit apps about every 6 months. Every time I do this I have to learn the "new" way to do it...
Same problems as described above when running iOS 5.1, and Xcode 4.3.2
Thanks for the posts! I spent a while updating all of the project settings to armv6, armv7, but no joy. When I set "build active architecture only" to No I got a build error about putting both objects in the same directory.
Fortunately, I noticed you guys were modifying the target build settings instead. This is what finally worked (armv6, armv7, and setting "build active architecture only" to No under the Target build Settings). As a disclaimer, I had already set all of the architectures to armv6, armv7 in the project settings too.
Anyway, thanks for the help,
Brent
I had to be sure to change these settings in both the Target and Project settings on xCode 4.3.2 after doing that and setting it to build for both armv6 and armv7 everywhere I was able to submit my app.
For safe measure I also exited xCode between making the changes and doing a clean, build, archive cycle.
Quite a painful problem for me too. Just spent about an hour trying to build and re-build - no joy. In the end I had to do this:
Upgrade the base SDK to the latest ( in my case iOS 5 )
Restart xCode
Clean & Build
It worked!
I guess it's a bunch of jargon about arm6 , arm7 as it looked like my project was valid for both, at least the settings seemed to say so ) , my guess is this is a cynical way to bamboozle us with the technicalities, which we don't understand, so we just take the easy option and target the latest iOS ( good for Apple with more people being up-to-date ) ....
Here is Apple's documentation:
Technical Q&A QA1760
It says there are two things that you must get right:
Add armv6 to the Architecture build settings
Set Build Active Architecture Only to No.
If this still doesn't help you, double check that you are really changing the architecture build settings for the right build configuration – I wasted half an hour fiddling with the wrong one and wondering why it didn't work...
Select Edit Scheme... in the Product menu, click the "Archive" scheme in the left list and check the Build Configuration. Change the value if it was not what you expected.
Note; I had to perform these steps for both my base project, and the embedded PhoneGap .xcodeproj file in my application.
Yes, I embed PhoneGap; they update far to frequently, and I've got less than two months to know that a feature is depreciated.
Try changing your deployment target to something higher than an armv6 processor. The settings for xCode are referencing the operating system level, for instance: iOS version#{3.1, 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 5.1}
(i)You can set this in the build settings tab or the summary tab. Start at the top left of the window in the Project Navigator, with all the files listed in it. Click the top-most one which has a blue icon.
(ii)If you are planning on using the programmable shader line circuitry, which is accessed and controlled through openGL ES 2.0 API, then you should set your "Deployment Version" to about 4.3, which I believe is only available on devices such as the 3GS or newer. xCode is reporting that iOS 4.2.5 or higher is needed run armv7 code. And once again, this processor, I believe, started with the 3GS.* iOS 4.3 seems to be the choice for me, for now.
http://theiphonewiki.com/wiki/index.php?title=Armv7
http://en.wikipedia.org/wiki/List_of_iOS_devices
If xCode keep complaining about armv7, make sure you disconnect any connect device (especially iPhone 5!!) and try again. Took me hours to find out that little piece of information.
Using Xcode 4.2 on Snow Leopard, I used the following settings to build an app that worked on both armv6 (Iphone 3G and lower) AND armv7 (everything newer than 3G including 3GS).
architectures: armv6 and armv7 (removed $(ARCHS_STANDARD_32_BIT))
build active architecture only: no required device capabilities:
armv6
do not put armv7 in required device capabilities if you want the app to run on 3G and lower as well.

Resources