I am developing an application for both iPhone and iPad, and i build the app with the deployment target of iOS 5.1, now i confused whether the Application will run in all version of iPad. Sorry for this newbie question, since i am new to development. Please help me with your valuable solutions.
With an iOS 5.1 target, yes. (It will run on all iPads having iOS 5.1 or later).
But be aware that iOS 6 will no longer be supported on the first-gen iPad, and that the first-gen iPad has a lot less memory than the later models, which you may need to take into account if your app is "heavy".
If your app runs on iOS 5.1, it will run on any device that runs on iOS 5.1, whether it is iPad or iPhone.
Related
I have a very frustrating experience with recent iOS development. The situation is:
I have developed an iPhone app which targeting iOS 3.1.2, and I am about to submit to AppStore.
What I received from Apple after submission is:
I have to support iPhone 5 tall screen.
The reject message is:
iPhone 5 Optimization Requirement
To support iPhone 5, I need to update the UI and include a launch image: Default-568h#2x.png
After having the Default-568h#2x.png included, Apple rejected my submission again with reason:
Invalid Launch Image - Your app contains a launch image with a size
modifier that is only supported for apps built with the iOS 6.0 SDK or
later.
OK, I am kind of stuck, Apple force me to support iPhone 5 screen, yet, it doesn't allow me to upload app under iOS 6 with iPhone 5 tall screen support.
So I try to compile the code with iOS 6 SDK, then what I find is in order to support iOS 6 I need to have XOS 10.7. Mine is 10.6.8.
To support 10.7 I need to upgrade my Mac to have 2GB memory and i3 duo core CPU and brah brah brah brah...which I don't have at the moment.
So, my question is:
I have XCode 3.2.2, XOS10.6.8, I want to develop iPhone app for iOS 3.1.2 and able to publish in AppStore, how can I do it?
Thank you.
Regards,
Apple will not accept an app targeting an iOS version that old. I don't think they will accept anything less than 5.0 anymore (might be 4.3 but I doubt it).
Sorry, but Xcode 3.2 is years old at this point. Apple simply doesn't support this. iOS 3.1.2 has such a negligible install base that there is almost no reason to target it any more. To support the latest features of iOS (e.g. iPhone 5 support) you need to be building apps with the latest SDK, and you will need to upgrade your development machines and Xcode. You have no choice.
I am looking to make my app so that it only works on iPhone4 or higher, and not the 3GS.
How can I do this? Is it done via setting the Architectures setting to Standard Armv7/Armv7s
And Valid architectures to Armv7 & Armv7s?
Or do I need to look at deployment target? And set it to a certain iOS version?
Thanks in advance!
Deployment target is only going to allow you to target a specific iOS version and a 3GS can run iOS6. If you're truly looking to restrict older devices from running your app you're likely going to have to do some checks for device model within the AppDelegate and restrict functionality.
A caveat to this is that your app will likely not be permitted in the App Store. What feature(s) are you trying to leverage that a 3GS doesn't support?
Unfortunately you can target the iOS version not the device! You can try to build for iOS 6.0+ and it'll isolate some older devices like iPad1. I'm not sure what iOS version will go up to on 3GS, it'll be phased out soon, though with upcoming iOS releases. I know iOS 6 will work on 3GS but iPad1 won't
You can detect the device, and restrict it via code, but through Apple and iTunes, there is no device centric restrictions, only OS.
I was developing iPhone/iPad apps using XCode 4.2. With the recent update, I upgraded my XCode to 4.5 with iOs6. And I developed an iPhone app with this. But the issue when I run the app in iPhone 3GS with iOs 4.3, it crashes some times. I couldn't find any specific or common reason for this crashes. It happens randomly, not when doing a specific action. But it happens very rarely in iPhone with iOs 5 and iOs 6. I tried to track the issue using Instruments, but still I couldn't find any reason. Some memory leaks are there, but it wasn't the issue.
So, I have some guesses, may be it is happening due to the device is 3GS? Or because, some codes that come with iOs 6 not supporting in iPhone 3GS or iOs 4.3. In the Xcode it is not showing any warning.
So, I am not sure, is there any possibilities for my guess??
Also, I would like to know, now we have iOs 6, so when we develop new app, should we still support iOs < 5? Or can we specify it needs iOs 5 or above as requirement?
Please give me some suggestions.
Regarding your first question - "App crashing randomly". You have mentioned that your app crashes on all the iOS versions - rarely on 5 & 6 but frequently on 4.3. If this is the case, then as per my experience, this issue is mainly related to "Low Memory". To verify this, debug your app on device and check your Debugger giving you "Low Memory Warning". This is the way you will find your issue.
Now regarding your second question - "which iOS to support". Answer to this would be iOS 5.0 and above - YES. Not all the iPhone/ iPad users have updated their devices to iOS 6. Also some of the users can't because of device issues. So you must provide support for iOS 5.0 at least. As per the latest stats iOS device users are hardly using iOS 4.x but iOS 5.x users are plenty enough. A lot of apps in App Store don't provide support for below iOS 5.0. So go for iOS 5.0 and above. Rest it depends on your requirements like if the app is pretty simple enough then providing support for below iOS 5.0 is not a headache.
I am new to iphone app development and am wondering which deployment target to use (as ios 6 approaches). My app is simple (http web service interaction, map) and my natural inclination is to target 3.1 to maximize potential use. However, I understand that ios 6 will soon be available to all iphones and I presume it will be widely adopted.
So, if I target 5.1 today, will my app be available to most, if not all, iphone users once ios 6 is released?
Right now, requiring a minimum of 5.1 is a bit bold in my opinion, but that depends on your app. It is customary to support the current version and the previous major release.
If you want to expand your target, you may considering going back to 4.3 or even all the way down to 4.0. But 3.x is practically obsolete. but:
Warning: Don't target a version you can not test on device. If you don't have a device running 4.0, testing your app only on the 4.0 simulator is not recommended (although perhaps it is OK. No assurance).
The iPhone 3G can run up to iOS 4.2.
All other phones and iPads can run the latest OS (5.1.1)
Not sure about iPod Touch devices but 3rd (and 4th) gen. should run iOS 5.
You can use 5.1.1 as deployment target if it is available to your menu.. if not 5.1 is best for your needs for now.
This way all (Who have not updated to IOS 6) can use your app...
Best luck for app development.
I am building an iOS application for public release, and I would like to develop it against iOS 4, as I see from the instapaper stats from November that iOS 5 has a 48% market share, which is good, but my app will probably not be used by these early adopters, and it's probably not going to be enough to force them to upgrade.
The issue is that I only have an iPhone 4S, which shipped with iOS 5. I have been unable to find an iOS build for my 4S, which upon reflection makes sense. Nontheless, I'd like to know if there is some sort of unofficial build for the 4S or some way to make the iPhone 4 version work on the 4S.
I'm pretty sure that the answer is going to end up being "Buy a 3GS/iPod touch for development". Would that necessarily be worth it or should I just tough it out? I'm pretty sure that most iOS 4 users will upgrade eventually. Does anyone have any stats on how long it took iOS 3 users to move on?
I would still suggest getting a used iPhone 3GS. Even if you are able to install iOS 4 on the 4S you still wouldn't be able to do any performance testing, but it's highly likely that someone who still uses iOS 4 has a 3GS.
For your first cut testing, you can use the simulator which, will allow you to test for iOS 4.3
Ideally you need to get hold of the appropriate devices to test your app. You say you're supporting iOS 4, but do you mean 4.2 or 4.3? If 4.2 then you'll be supporting iPhone 3G, if 4.3 then 3GS upwards.
There are testing services out there, just search "iPhone testing services". I've never used them myself, so can't vouch for any of them, but the cost may be less than investing in actual devices.
I kept a 3G and 3GS for testing, but to be honest, even though my main app supports 4.2, I rarely do any testing for older OS versions outside the simulator. I gave the 3GS to my father on condition he tested for me when asked… but of course I had to upgrade it to iOS 5 for him, so it's of little practical value, apart from testing at different screen res.
I would suggest you develop your app with minimum version 4.0 (or other) set. Then you test that on your iOS 5 iphone. I did it with my apps and it works great.
You can test on the lower version simulator or for final testing you could borrow a friend's device or similar.
As I understand (and believe), the compiler would stop you if you included features that are not 4.0 (or the set version) compatible.
Buying lower iOS is not worth it. If you can you should borrow it. In the simulator you can also make the iOS version to lower version to test. Also you can try ad hoc distribution to check how your app performs on other ios before releasing on appstore