XCode 4 active architecture setting - xcode4

I've updated the XCode to the latest 4 version (final). My project depends on a 3rd party library that was build for armv6.
The problem is that i can not change the "active architecture" as it was in 3.x.x instead I see that during linking the active architecture flag is always passed as armv7.
Does anyone know how to set active architecture for the build target (or for scheme) ?
Thanks in advance.

Answering to myself ...
Yes and no. You can not change the arc but you can trick the Xcode. Set it to compile not only for active architecture and leave only archv6 in the list. Hope it helps to whoever looks for an answer.

It is still possible to change the Architecure settings in Xcode 4. Select the project file in the Project Navigator. Then select the target you like to build. Then select build settings->All->Levels. In the search box enter "architectures". You should see the Architectures and Build Active Architecture settings.

Related

How do you set file-specific build settings in XCode 4?

In xcode 3 it was possible to configure specific option for building every single file of a project, like for example disabling specific warnings, thumb code generation and so on.
In xcode 4 such feature is not available, or at least not in an intuitive way. This is however supported, at least as a backward compatibility feature, in projects imported from xcode 3.x.
Does anyone knows a way to specify those settings without having to open the project back in older xcode or creating a project for every single file?
Select the project in the navigator, then select the target from the list. Select the Build Phases tab, then expand the Compile Sources phase. The Compiler Flags column is where you specify per-file compiler flags.

Way to restore Xcode to accept armv6 architecture?

I have a 3rd party .a library, which is apparently compiled for only armv6 compatibility, where both new Xcodes (3.2.6 and 4), both now require a separate armv7 slice to run on the device. The link error is: file is universal but does not contain a(n) armv7 slice for architecture armv7.
Anyone know how to make either of the two new Xcode operate as 3.2.5 did and accept the existing library while I'm waiting for the library vendor to cook up an armv7 version?
Nothing worked for me until I set "Build Active Architecture Only" to No.
In Project Settings, select "Standard" for the architecture (not "Optimized"). This should allow you to select "armv6" for the Active Architecture. This means it should also work on older devices (barring any other deprecations) once it's on the app store.

Xcode cannot run using the selected device

This is the message while trying to run under XCode 4 (it used to work under XCode 3):
No provisioned iOS devices are available. Connect an iOS device or choose an iOS simulator as the destination.
I have profiles for my device for this app... where should I be looking to correct this?
The problem is that your iOS Deployment Target in Project-> Build Settings is different from the current version of iOS on your real device.
You're asking where to find it:
In XCode 4 there is a new button - look for the big
"Organizer button"
which is at the TOP RIGHT.
Physically connect your device and then click Devices. It seems that the new "Organizer button" is one of the "most-missed" things in the transition to XCode4.
Note, the questioner is asking: "WHERE should I be looking to correct this?"
I was having extra trouble because of my Enterprise License, but still updated the iPads. I didn't have to change anything in the Build Settings to lower. But the main thing that I had a problem with was in the Organizer I needed to hit "Use for Development" button.
Kind of an old post, and may not be the best way or a rookie thing to miss but wanted to help anyone out.
My problem similar to those above were related to having the deployment target set too high for the version installed on the phone. Would be nice if it gave a more useful error message. I spent hours messing with my provisioning profile trying to fix it, when the real problem was the older version of the software on the phone.
I had the same problem. The reason was simply, that my ipad had not been update to version 4.3.
This just happened to me for iOS5 with xcode 4.2.
The answer is to go into organiser, select your device, and press the "Develop with this device" button (or similar wording).
Then go back and build, and it should work..
I received this error while having an iPad properly connected.
Some info:
Ipad iOS version: 4.2.1
XCode 4.2
XCode project created with "iOS Application / Empty Application" template.
The problem was that I had to specify the "iOS Deployment Target" to 4.2 in more than one place!
That is, both in the "Build Settings" and in the "Summary".
Very odd, and definitely another XCode4 annoyance.
I got this error in Organizer - "Could not support development.". I tried rebooting the iOS device and it worked for me :)
Check that the Executable File (also known as CFBundleExecutable) in the Info.plist file is set to ${EXECUTABLE_NAME} as opposed to any hardcoded value. This will ensure that even if you change your project name or target name or scheme name, that it still works.
you need to install the proper version of iOS.in my case it is iOS 4.0 - 4.1 Device Debugging Support
GOTO --> XCode Preferences -> Downloads --> Component
there are all updates available for your iOS click Install.
This is works for me.
It looks like this error can also come about if the "Product Name" in your target's build settings does not match the value of "CFBundleExecutable" in your info.plist
It looks like to me this is the general error Apple gives if the executable is not installed correctly on the device. When the debugger tries to attach it looks for the executable name and if it's not there they give this error. Touch one to debug.
Go to build option and select valid compiler.
Chose your right iOS Deployment version

How can I build for release/distribution on the Xcode 4?

Build for debug is just press on the PLAY symbol, but I don't know how to Build for distribution/release?
The short answer is:
choose the iOS scheme from the
drop-down near the run button from
the menu bar
choose product > archive in the
window that pops-up
click 'validate'
upon successful validation, click
'submit'
You can use command line tool to build the release version. Next to your project folder, i.e.
$ ls
...
Foo.xcodeproj
...
Type the following build command:
$ xcodebuild -configuration Release
The "play" button is specifically for build and run (or test or profile, etc). The Archive action is intended to build for release and to generate an archive that is suitable for submission to the app store. If you want to skip that, you can choose Product > Build For > Archive to force the release build without actually archiving. To find the built product, expand the Products group in the Project navigator, right-click the product and choose to show in Finder.
That said, you can click and hold the play button for a menu of other build actions (including Build and Archive).
XCode>Product>Schemes>Edit Schemes>Run>Build Configuration
They've bundled all the target/build configuration/debugging options stuff into "schemes". The transition guide has a good explanation.
I have a large app that was having problems uploading to the AppStore using the archive method you will find in XCode 4. The activity indicator kept spinning for hours whether I was trying to validate or distribute, so I created a support ticket to Apple. During that process, I found out you could right click on the .app in your Products folder inside the Project Navigator of XCode, and compress the app to submit using the Application Loader 2.5.1. (aka the old method). Only the Debug - iphoneos folder is accessible this way (for now) and once Apple responded, this is what they had to say:
I'm glad to hear that Application Loader has provided you a viable workaround. Discussing this situation internally, we're not sure that submitting the Debug build will pose too much of a problem (so long as it was signed with the App Store distribution profile, as you mentioned it was). The app will likely be slower as the debug switches are turned on and optimizations are turned off for the Debug configuration, though it will still run. App Review will ultimately determine whether or not that's ok, as I'm not sure that's something they check for. You could try reaching out directly to App Review to confirm this, if you wish. However, since App Loader is working for you, I do recommend rebuilding the app with your Release configuration and resubmitting to play it safe. To find your Release build in Xcode 4.x, control-click on the Application Archive on the Archives tab in the organizer, and choose "Show in Finder." Then, control-click on the .xcarchive file in Finder and choose "Show Package Contents." The release built .app file should be located within the /Products/Applications folder.
This was very helpful information for developers who are having problems with the archive method, and my app is now uploading successfully without any concern that it won't run to the best of it's ability.
To set the build configuration to Debug or Release, choose 'Edit Scheme' from the 'Product' menu.
Then you see a clear choice.
The Apple Transition Guide mentions a button at the top left of the Xcode screen, but I cannot see it in Xcode 4.3.
That part is now located under Schemes. If you edit your schemes you will see that you can set the debug/release/adhoc/distribution build config for each scheme.
Product -> Archive, later, press the distribute button and check the option Export as Application or what you want

How to select debug/release mode in Xcode4? [duplicate]

Build for debug is just press on the PLAY symbol, but I don't know how to Build for distribution/release?
The short answer is:
choose the iOS scheme from the
drop-down near the run button from
the menu bar
choose product > archive in the
window that pops-up
click 'validate'
upon successful validation, click
'submit'
You can use command line tool to build the release version. Next to your project folder, i.e.
$ ls
...
Foo.xcodeproj
...
Type the following build command:
$ xcodebuild -configuration Release
The "play" button is specifically for build and run (or test or profile, etc). The Archive action is intended to build for release and to generate an archive that is suitable for submission to the app store. If you want to skip that, you can choose Product > Build For > Archive to force the release build without actually archiving. To find the built product, expand the Products group in the Project navigator, right-click the product and choose to show in Finder.
That said, you can click and hold the play button for a menu of other build actions (including Build and Archive).
XCode>Product>Schemes>Edit Schemes>Run>Build Configuration
They've bundled all the target/build configuration/debugging options stuff into "schemes". The transition guide has a good explanation.
I have a large app that was having problems uploading to the AppStore using the archive method you will find in XCode 4. The activity indicator kept spinning for hours whether I was trying to validate or distribute, so I created a support ticket to Apple. During that process, I found out you could right click on the .app in your Products folder inside the Project Navigator of XCode, and compress the app to submit using the Application Loader 2.5.1. (aka the old method). Only the Debug - iphoneos folder is accessible this way (for now) and once Apple responded, this is what they had to say:
I'm glad to hear that Application Loader has provided you a viable workaround. Discussing this situation internally, we're not sure that submitting the Debug build will pose too much of a problem (so long as it was signed with the App Store distribution profile, as you mentioned it was). The app will likely be slower as the debug switches are turned on and optimizations are turned off for the Debug configuration, though it will still run. App Review will ultimately determine whether or not that's ok, as I'm not sure that's something they check for. You could try reaching out directly to App Review to confirm this, if you wish. However, since App Loader is working for you, I do recommend rebuilding the app with your Release configuration and resubmitting to play it safe. To find your Release build in Xcode 4.x, control-click on the Application Archive on the Archives tab in the organizer, and choose "Show in Finder." Then, control-click on the .xcarchive file in Finder and choose "Show Package Contents." The release built .app file should be located within the /Products/Applications folder.
This was very helpful information for developers who are having problems with the archive method, and my app is now uploading successfully without any concern that it won't run to the best of it's ability.
To set the build configuration to Debug or Release, choose 'Edit Scheme' from the 'Product' menu.
Then you see a clear choice.
The Apple Transition Guide mentions a button at the top left of the Xcode screen, but I cannot see it in Xcode 4.3.
That part is now located under Schemes. If you edit your schemes you will see that you can set the debug/release/adhoc/distribution build config for each scheme.
Product -> Archive, later, press the distribute button and check the option Export as Application or what you want

Resources