iPhone app does not run on old device (3G, 3GS, ...)
This can come for various reasons. Until now this is are the cases pople have encountered:
- bad cable -> try another one, or hold it really still when programming
- unsuported features mentioned in info.plist -> check plist
- unsuported architecture (by default Xcode4.2 uses standard arch= armv7 ) -> add armv6
Xcode 4.2 -- App doesn't run on hardware -- no error messages to be found
What device are you trying to run on? It is likely you need to add "armv6" as a build architecture. XCode doesn't do a good job of telling what's wrong in this case. Try the following.
Select your project at the top of the Project Navigator and choose Build Settings in the right pane.
Select the ARCHS setting under Architectures and add "armv6" by choosing "Other..."
Make sure the ONLY_ACTIVE_ARCH is set to "No"
Make sure that VALID_ARCHS is set to "armv6 armv7"
Also, the place you see the error message is in Organizer. Select the device you're trying to run on and choose 'Console'. You'll see an error after you try to run the app.
Xcode Build Succeeded but not run on iPhone
you are right - the problem is probably that the 3G runs an amrv6 and you are only building for armv7
in your build settings you find a setting for valid architectures. There should be one entry called armv7
just add another entry armv6 to that setting.
that should do the trick
How to test a new app on old hardware? (Xcode 4.3.2 with base SDK iOS 5.1; test-device is iPhone 3G with iOS 4.2.1)
We are testing applications on iOS 4 and 3 for some applications at my work and normaly the two key point are the arm achitecture and the deployment target as you already point out.
First, if you have multiple target, make sure you have the correct configuration everywhere.
Secondly, you pointed out that the armv7 "jumps" back to armv6.
It shouldn't happen.
Make sure you enter this field correctly with "armv6" on the first line and "$(ARCHS_STANDARD_32_BIT)" on the second line of the popup.
Finally, do you have any warnings or message in you console when you try to lauch the application ?
Xcode 4 says finished running my app on the targeted device -- Nothing happens
For those reading this in regards to Xcode 4.2, and attempting to run on an earlier device (e.g. iPhone 3G, 2G, iPod 1st gen, etc) I have another solution. New projects created 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
You may also need to change the build settings to compile with armv6 instead of armv7.
This is the default:
Double click on 'Standard (armv7)' to add another, then click the '+' in the popup, and type in 'armv6':
Click done and it should look like this:
Build and test on 2.2.1 iPod Touch with Xcode 3.2.2?
While under NDA, I can't be more explicit than to tell you to read this thread in the Apple Developer Forums, which includes an explanation of this problem.
Confused about iOS 5 SDK Capabilities vs iOS 5 Capabilities of the Device
You should always use the newest SDK as base SDK in your application. You can always target older iOS version with the "Deployment Target" setting, but you have to pay attention which new features you can use.
For example, iOS 5 brings two interesting new features, namely ARC and storyboards. You can use ARC if your deployment target is iOS >= 4.0, with the exception of weak references, which unfortunately do not work with iOS4. Storyboards are different, they need iOS 5, they won't work at all on older devices!
If you're using the newest XCode 4, you have to do some extra work to fully support iOS 4 or older versions. This is because the armv6 code generation has been deleted from all templates. Newer devices use the armv7 instruction set, but you can compile your application so that it targets both the armv6 and armv7 instruction set. See my other post on this topic.
How to change the default Xcode iphone simulator when testing
For me works changing active SDK from 3.2 to 4.0. If your project is mentioned to work on iPad and iPhone (or for compatibility matters) I believe the only way is manually switching active executable before running your app on simulator.
Apple:"iPhone OS 3.2 does not support iPhone and iPod touch devices. It runs only on iPad.".
Related Topics
Uiscrollview with Dynamically Sized Content
How to Control My Headset for My Music Player
Xcode Doesn't Write Anything to Output Console
Setting Layoutmargins of Uiview Doesn't Work
Authentication with Wkwebview in Swift
iOS How to Dismiss Uialertview with One Tap Anywhere
Xcode 10 Not Being Able to Archive Project
Will Fork() in iOS App Likely Be Rejected by Apple's Vetting Process
Swift Execute Asynchronous Tasks in Order
React-Native Loading Image Over Https Works While Http Does Not Work
Warning in Custom Map Annotations Iphone
Make Swift Assume Degrees for Trigonometry Calculations
Pdfkitten Is Highlighting on Wrong Position
Draggesture on a VStack with Lot of Buttons, How to Detect When the Drag Is Inside a Button