Upgrading App to support iOS 5 - objective-c

I have developed an ios4 app and now want to upgrade it to ios5. What are the sort of things i need to be aware of in terms of the switch being successful and not causing any pains? My most important question is that if i do push a new change to apple, what will ios4 users see when an upgrade is available that supports only ios5 and up? Can they just ignore that update and continue using the ios4 version they had installed? Will the appstore error out if they try to download the ios5 upgrade anyway? What exactly will happen?
Thanks

The biggest change in IOS 5.0 is the ARC project, so if you converted it to ARC it won't work with older devices like 3g (3gs can have ios 5.0 so it's safe).
Other than that, a user that has an iOS 5.0 device (or an upgraded one) would be able to get the update as soon as it is made available from apple store.
Keep in mind that lower end ios 5.0 devices might not have enough memory for the application though, it's the same that applies for ios 3 / ios 4 and sequentially ios 5/ios 6.0.

Related

Can I still upload an application that does not support iOS8+?

Can I still upload an application that does not support iOS8+?
I currently have an app that we are releasing for iOS7 and 7.1, but it was rejected because it was not compatible for iOS8.
We are currently in the process of building the iOS8 version, but wanted to release something quickly.
You just need to build & submit it with XCode 6, iOS SDK 8.0.
They may reject if the app doesn't work with iOS 8. Do a quick test to make sure it doesn't crash, and all major functions are working fine.
No you can't. I'm not sure the exact date that apple made it mandatory to support iOS 8 but I do know it has passed so any new apps/updates submitted to the app store need to support iOS 8.

Update ios simulator to 7.0.6?

Is it possible to update iOS simulator to the latest version of iOS? Now it is 7.0.6, but my simulator is 7.0.3, I have XCode 5.0.2 and updated all downloads in Preferences.
Apple has not released any further 7.0.X SDK than 7.0.3. The reason for that is because the API has not changed, and neither has behavior changed significantly enough to warrant a new SDK release. 7.0.6 in particular is only a security update and would not be applicable to the simulator at all; the simulator uses the underlying OS X infrastructure for network connections. You should wait for the upcoming OS X security fix.
You can, however, download beta releases of Xcode 5.1 with 7.1 beta SDK, and make sure your app is ready for the upcoming iOS 7.1 release.
the simulator is definitely still vulnerable to gotofail even on macs that have been updated with the security fix. this is easily testable by using it to browse to gotofail.com on osx 10.9.2: https://twitter.com/visnup/status/444992820915363840

Can I dump my non-Retina Images for a iOS7 only app?

The next update of my iPhone app will be targeted for iOS7 only. A couple of questions?
Does this mean I can delete all the non-retina images from my app?
If I have only retina images left do I still need to mark them #2x?
Does Apple keep older iOS versions of my app on the store so those running older versions of iOS who have bought or want to buy can still access it?
Any help would be most appreciated.
Yes you still need to have the #2x at the end. Yes you can drop all the non-retina images but could affect performance as even the newer devices will use some none-retina images but the main performance hit was to iPhone 3GS and below but as iOS 7 will not run on iPhone 3GS or below it isn't a requirement you'll just have to handle the performance issues. No Apple do not keep hold of older versions of your app on the app store, if you drop support for it then it is gone.
To answer the second part of your question YES, Apple does indeed store older versions for download.
For my app Parkable I created one for iOS5/6 then when 7 came about I specifically targeted it and dropped support for older iOS builds, now if you're not on 7+ you can still download the old version (instead of the old error telling the user to update their OS). This happens automatically as I recall, simply change your deployment target in both your project and target under the info tab.
Feel free to test if you have a pre-7 device (iPhone or iPad) and 7+ device https://itunes.apple.com/us/app/parkable/id577954935?mt=8&uo=4

How to stop supporting iOS7

I have just installed Xcode 5, and I have an application that should be targeted only to iOS 6.0 and iOS 6.1 devices.
How can I stop supporting iOS 7.0 ??
That is not possible, you can stop supporting previous versions of iOS, but not the other way. You need to prepare your app to work on iOS7.
YOu don't need to redesign your app or anything, just open in with XCode 5 and get rid of all the warnings/small bugs.
As others have noted, you can't "not support iOS 7". However, you can delay upgrading to the iOS 7 SDK (at least, in the short term).
To do such, simply continue using Xcode 4 to build your app. When you're ready to submit it, simply do such using Xcode 4 like you normally would.
For the time being, Apple will most likely accept apps built using the iOS 6 SKD. (Imagine, for example, that you've spent several months or a year building your app... Apple will still let you submit it for the time being even using an older SDK).
Further, the app will run and appear correctly (in many/most cases) using iOS 6 UI components for the most part (in example, UIAlertView is an exception to this, which will use the iOS 7's UIAlertView look).
In the long term, however, you really should convert your app to use the latest SDK.
It's not possible to prevent the installation of your app to devices that meet minimum version requirements.
Of course, you're free to check in your app the iOS version and do something about that. For example, if your concern is really that the user user should download another, iOS 7-designed version of your app, you can inform her about this possibility:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if ([self.window respondsToSelector:#selector(setTintColor:)]) // iOS 7
... // redirect user to better, tint-enabled version
return YES;
}

App works fine in iOS 7 with no modifications?

We've been working on getting our app to work properly with all the changes in iOS 7. Particularly the colors and layouts of things. But these changes are still in development.
The version of our app in the app store has none of these modifications. When testing locally, it works on iOS 6 fine and looks horrible on iOS 7. Yet, upon downloading it from the app store and installing it on an iOS 7 iPad, it seems to work just fine -- just as it used to in iOS 6 (!). We are wondering if there is some "compatibility flag" that the app store folks can switch, which means "not ready for iOS 7 -- use compatibility mode"? I'm not sure how else to explain this. Wondering if anyone else knows?
Our app:
http://appstore.com/cedarssuite
Summary: running via the simulator on iOS 7 or on a development iPad that has iOS 7, the app looks horrible. But downloading the approved app store version and running on iOS 7, it works just fine. Why?
A note: This is no longer correct. Since February 2014, Apple only accepts SDK7 builds
That's normal. all the old apps work fine on new iOS versions since those app. Base SDK set to that old version. in your case (iOS 6.0). They will run using old sdks. But, when you built with the new sdk (Base SDK 7.0) they look horrible as you said and some times they crash. because of layout changes and controls behaviours in the new iOS.
You are only asked to build with the new sdk to take advantage of the new features.
keeping your app. built with the old versions doesn't seem to have disadvantages other than new features. since apple still accept publishing apps with old sdk back to 4.3.
If you set the base SDK < 7, it will use the old iOS 6 style. Of course, that basically requires you compile with an old version of Xcode, and you can't use iOS 7 features, even when running on iOS 7.