I am using Xcode 4 version, and I have deployed SUP sample project developed for iOS platform in Xcode.
All the configurations I had done for running the application. The project was successfully built and run in iPhone & iPad simulators.
When I am trying to build the same with physical iPad registered, I am getting the following error.
[BEROR]No architectures to compile for
(ONLY_ACTIVE_ARCH=YES, active arch=armv7, VALID_ARCHS=armv6).
In the valid architecures menu i had added armv6 and armv7 also.
And at that time also am getting a number of errors saying
Apple Mach-O Linker Error
Select your project icon, go to build settings, in the architecture option, for you valid configuration (debug/release), click the '+' button, and add "armv6". Initially it has only armv7. Refer screen shot:
Related
We have an app, that we try to distribute. We also have two different signing identities. When signing with one of them, everything works fine on iPhone4. Using the other one, the app can't be installed on iPhone4 with the config utility giving the error: 'This application does not support this device's CPU type'. On iPhone5, installation with both identities works fine, too. Anyone already experienced this?
The signing identity shouldn't cause any architecture related issues like the on you describe: 'This application does not support this device's CPU type'.
Make sure that you set "Build Active Architectures Only" (Project > Build Settings > Build Active Architectures Only) to NO and try again.
The following scenario could cause the problem:
"Build Active Architectures Only" is set to YES, you've connected an iPhone 5 via USB which is selected as launch destination in the scheme selection menu.
The IPA file created with these settings will run on armv7s devices only (currently iPhone 5 and iPad 4).
Connecting and selecting an iPhone 4 would produce an armv7 IPA which should run on armv7s machines too. (Cause of backwards compatibility.)
Go to Target>Build Settings> Architecture, and check the "valid architectures" value it should have armv7 and armv7s if you want it to run in both iPhone 5 and iPhone 4
When I build my iphone app and my ipad app for archiving, I get this message: (But with iPhone instead of iPad in the iPhone app ofc)
(null): iPad: application executable contains unsupported architecture(s): armv7s (-19031)
I didn't get this error before! I didn't get it for my free versions of my app (which is almost the same code) I think it has something to do with iPhone 5? I want it to work with iPhone 5 so I don't want to remove it armv7s
/A noob
This warning is perfectly normal when you use an armv7 device to archive your application.
Think about it, you make an archive that includes the armv7s architecture (which is what we want) and the warning tells you that your armv7 device does not support that architecture (which totally makes sense).
To prove that even further, just hook up an iPhone 5 and try archiving and you will see that the warning will go away.
You have to wait until all custom libs in your project will update. Check it, some of popular libs have updated yet.
Until that remove armv7s:
Project -> Build Settings -> Archetecures
I had a similar problem on the XCode 4.6.3.
I get message:
iPhone/iPod: application executable contains unsupported architecture(s): i386
it turned out that if before the Build, run an application on the simulator, the application is going to the architecture i386 (for Mac), ignoring the Project Settings. Before Build need choose iOS Device as target.
I'm new to xCode development and struggling my way through the provisioning system trying to run a Hello World app on a real device. I went through al steps and everything seems fine but one thing:
When i click my device (Iphone 3G running IOS 4.2.1) in the xCode organizer the following message is displayed under Software Version: Xcode cannot find the software image to install this version...
Also the provisioning profiles show no status in the organizer (both in the library and on the device). On the provisioning portal they have the status active.
I hope someone can help me, thanks!!
ps. i am working with xcode 4
Update: OK, I've found the solution -> set deployment target to 4.2 in info tab: https://discussions.apple.com/thread/2780316?start=0&tstar
The message "xcode cannot find the software image to install this version" seen in the organiser window... This is just a notification rather than a problematic error.
If you want to eliminate this message anyway, I found I was able to do this by running restore within iTunes. Part of that process involves downloading some stuff, which I presume is the 'software image'.
But, as explained in Technical Q&A QA1569 "This message does not prevent you from using the device for development purposes. The only effect is the inability to reinstall the OS currently on the device using Xcode." ...and that has been my experience. Back in the main Xcode window you're still able to click 'run' and send the app to the device to run.
...and it will run assuming everything else is set-up OK, but there are various other gotchas related to Xcode 4.2 and v4 devices:
As mentioned by Overbeeke you should ensure the 'deployment target'
of your project is set down to the desired version (the minimum
version of the devices you want to support) Additionally I would
point out that the 'SDK version' should normally remain set to the
latest (it's whatever SDK Xcode on your machine is using)
As mentioned by Kenneth Lam, in the new Xcode you need to frig around
with "armv6/armv7" settings if you want to support earlier models of
iPhone. Follow these instructions to add the right "Architecture" armv6 setting. Additionally I would point out (as per this answer further down) that there is a setting called "Required device capabilities" from which you need to remove 'armv7'. This is in your app's plist file.
I'm saying all this like I'm an expert, but I still can't get it to work on a v3.1.3 device :-)
I think Xcode 4 requires that you are running the latest iOS to use that feature, but you don't need it to install apps on a device. I have run my apps on an iPod Touch 1G (which can't be upgraded to iOS 4.3) with the same iOS as you and it worked.
Have you added your device to the provisioning profile?
What I did is opened the organizer, right click on the device on the left pane and select "Add device to provisioning profile" where you will be asked for your Apple ID (within xcode) and it will add the device to your profile without you leaving xcode, much simpler than using the online portal.
Xcode 4.2 only builds armv7 targets by default. (Iphone 3G running IOS 4.2.1 is armv6) Add armv6 build targets by following these excellent instructions from Nick "Warning: iPhone apps should include an armv6 architecture" even with build config set
just an update, to update the iOS deployment target, click your project in the left pane, the one with the blue 'A' icon. click the build settings tab (not info), instead of showing "basic," show "all." iOS deployment target is in the deployment section.
There could be a number of things, but i would make sure that that your deployment taget in build settings is at or below your target . Check the "deployment section" in the build settings of your project. The default sets the deployment to the highest iOS version, if the ios version is below what is set you will not be able to run the app on that device.
I want to test my app on my itouch which has ios 4.2.1 .
I have completed the steps for provisioning profile/certificate. So under Organizer,
when I select my device, I am seeing the provisioning profile
and under Developer profile, I see 2 entries; iPhone Developer and iPhone Distributor
Now I want to just test the app on my device (NOT looking for steps to submit the app for distribution at this stage)
I think there are some Project settings that I need to do under XCode. But I am unable to figure it out. Please provide me the steps to test on device.
My XCode ver is 3.2.5
I was hitting an issue following this and the documentation where my app would not deploy to my iPhone 3G running iOS 4.2.1 using XCode 4.2. I hope this helps others who end up on this question trying to get their apps to deploy to a real device through XCode.
I kept fiddling with the Base SDK setting along with the Deployment Target setting in the project and target settings area. However, I had them correct to start with so that wasn't the answer (I want to target iOS 3.2+, so I kept all set to that). In addition, I messed with the provisioning profiles, certificates, etc. multiple times even though they looked right to me. They weren't the issue, either.
The key was changing the architecture settings that are scattered throughout the interface.
First, since I am testing it on an iPhone 3G, I needed to support the armv6 architecture as well as armv7 for later models. So I added "armv6" to the "Valid Architectures" entry on the project's "Build Settings" tab.
Next, I made sure it was showing "armv6 armv7" under "Architectures" in the "Build Settings" tab of the target for my project.
Finally, I clicked on the -Info.plist file for my project and removed the "armv7" entry for the "Required device capabilities" that is put there by default for new projects in XCode 4.2.
After this, my app ran successfully on the device using Command + R for Run.
Double click your app under targets in Xcode
Make sure that for the configuration 'Development' you have the right development provisioning
profiles selected.
click on the properties tag and make sure that the identifier is the same as the identifier used in
the development profile.
clean all targets, in Xcode make sure you are building for Device, Debug, and than click 'build and run'.
If the development profile is on your iPhone and you have installed it into Xcode correctly it should work. However sometimes after installing a profile on your iPhone it doesn't register everywhere it needs to and I have found that this is fixed by restarting the iPhone (not Xcode).
Good luck.
I have an iPhone app that I am trying to port to MacOS. To get things started, I added a MacOS target to my existing Xcode project.
The problem I am having is that when I switch from the MacOS target to the iOS target, it tries to build it with architecture i386, which leads to like a zillion compiler errors.
In my target settings for the iOS target, it shows valid architectures as armv6 and armv7.
Here is the first error:
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/usr/include/machine/types.h:37:0 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/usr/include/machine/types.h:37:24: error: i386/types.h: No such file or directory
This appears to be a bug in XCode, which is circumvented by option-clicking (i.e. alt-clicking) on the overview, usually top-left in the xcode window, and then selecting the right SDK. The architecture then changes to the right one (hopefully).