Can I still submit iOS 5.1 apps to the app store (Oct 2012 )? - app-store

I started building an iOS app with xCode 4.3.2 , using armv6 and armv7 instruction sets. My deployment target is iOS5.1 . Now that iPhone 5 is released, and xCode 4.5 drops support for armv6, and replaces it with armv7s , what is the correct approach to submitting apps to the app store?
I'm afraid that if I submit the app incorrectly, the app store review team would try to launch the app on iPhone 5, running armv7s , and the app would not run.
Should I update to xCode 4.5, and build my apps against iOS6 now, even though I do not have an iPhone 5 to test it on?
Thank you for any clarifications.

Should I update to xCode 4.5, and build my apps against iOS6 now, even though I do not have an iPhone 5 to test it on?
You can submit an app that does not exploit the iPhone specific features (namely, the taller screen). If your app works on iPhone 4, then it will work on iPhone 5, although in a special mode where the visual content of your app is centered on screen, with black bands both above and below it.
On the other hand, you can use the Xcode 4.5 simulator to ensure that your app works on iPhone 5, if you are worried about it. Then you could change your code base to make it run on iPhone 5 and still provide an official build for the App Store made with Xcode 4.3. This is good for all except performance tuning and fixing memory management issues; but you can work on those points on your current iPhone/iPad, whatever.
With Xcode 4.5, Apple decided to make a move towards discontinuing support for older devices: the original iPhone, iPhone 3G, and the first two versions of iPod Touch. So, if you want to support iPhone 5, you will be forced to discontinue support for those devices. I don't think it is a big issue, although I myself have got an old iPod Touch 2nd Gen and I cannot foresee a bright future for it.
If in doubts about supporting iOS5 vs. iOS6, you could also have a look at this other post.
Hope this helps.

Related

Is there any way to develop iPhone app under iOS6 that targets iOS 3.1.2?

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.

Submitting an App to Apple wrote in iOS 4

Okay, I know what your thinking why, right? My employer wants me to work on their app and submit it to Apple, but I told him the app has to be wrote in the most up to date OS. Does anyone know where you can find a something that states your, iphone App must have the most up to date OS? He would to have some concrete proof, before they restart their project. I'm like 90% sure your app has to have the most recent OS, but I also am having troubles finding something from apple that says that.
thanks
Starting tomorrow (May 1st), all new apps and app updates must fully support the taller screen of the iPhone 5 and 5th gen iPod touch. In order to do this you need to be using Xcode 4.5 or later with a Base SDK of 6.0 or later. And this in turn means that the oldest Deployment Target you can support is iOS 4.3.
See https://developer.apple.com/news/ and look at the news items from March 21.
So you can still support iOS 4 but it must be 4.3 and later. You must have full retina support on all devices you support and you must fully support the taller iPhone/iPod touch screens.
To be honest, supporting 4.3 is virtually pointless at this point in time. Any device that can run 4.3 can run 5.1. And except for the iPad 1 and 3rd gen iPod touch, any device that can run iOS 5 can run iOS 6. So basically, there is no reason to support anything before iOS 5.1. Any user running 4.3 or 5.0 can update to at least 5.1 if not the latest 6.x.
In other words, starting May 1st, 2013, no new apps or app updates can support the iPhone 3G or older, or the first 2 iPod touches.
BTW - the following Wikipedia page has a good chart about what versions of iOS run on the different devices: http://en.wikipedia.org/wiki/List_of_iOS_devices

Xcode 4.5 with iOs 6 issue in iOs 4.3

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.

How can I deploy app only for iPhone 3Gs,4,4S and skip iPhone5 support?

I want upload app to app store for review but it seems like I need also iPhone 5 screenshots but I don't have app prepared for iPhone 5. Please, how can I deploy app only for iphone 3gs,4,4s?
I find something in Targets/Build Settings/Architectures Standard armv7 and Base SDK is Latest iOS 6.0. Is that what I have to change?
Just for absolute clarity, Apple released an announcement on March 21st 2013 stating that starting May 1st 2013 new apps and app updates MUST be built for iOS devices with Retina display and iPhone apps must also support the 4-inch display on iPhone 5.
You can view the announcement here.
The best solution is to just properly prepare your app for the iPhone 5's display. And no. Changing the base SDK will not help here.
You can't, only apps submitted before iPhone5-release can run in "iPhone 4 mode" on the new iPhone. All updates to apps and newly submitted apps must support the new 4 inch screen.
You cannot exclude the iPhone5 in the target settings and if there were a way to do that, there is no way Apple would approve it. You can remove support for old devices, but never for new ones.
After all, Apple wants as many apps as possible to adapt the new format as soon as possible, and this is what you have to do... don't worry - if you are fairly used to developing to iOS you can do it in just a few hours...
Apple has stated that theY will still (currently) be accepting apps without specific iOS 6 and iPhone 5 support when developed with an Xcode version prior to 4.5, and thus with an SDK 5.1 or earlier. 568h support is specifically not allowed in apps built that way.
Apps built that way will run in letterbox on a 5, or the similar 1X/2X compatibility boxes that the iPad uses for legacy iPhone only apps.
I submitted an app following the release of the iPhone 5 with the latest version of XCode that runs letterboxed on the iPhone 5. Just remove armv7s from your supported architectures.

iOS 4 for iPhone 4S

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