3

Currently I have an app at appstore in IOS 6. If my friend with ios 7 downloaded it, it still look well.

However, if I try to build on that iPhone 7, it looks messy.

I noticed that I now used Xcode 5 and I used IOS 7 SDK. I can't go back to previous SDK.

If I updated my app now, will it look messy when iPhone 7 shows up?

rmaddy
  • 314,917
  • 42
  • 532
  • 579
user4951
  • 32,206
  • 53
  • 172
  • 282

2 Answers2

10

All apps with a Base SDK of iOS 6 or earlier will keep the old look when run under iOS 7 (except for action sheets and alert views). Apple has no desire to suddenly break 100's of thousands of apps when iOS 7 goes live.

Of course if you update your app to use a Base SDK of iOS 7 then your app must be updated properly to work with the new look and feel of iOS 7.

Most apps that look poor when the Base SDK is updated to iOS 7 is because the app was written incorrectly to begin with. Some things did change enough to require some more work but most should "just work" if written properly to begin with.

At a minimum, test your existing App Store apps (with a pre-iOS 7 Base SDK) on a device with iOS 7 beta installed and verify it still works properly and looks OK. Poorly written apps are far more likely to have problems under the new OS. Properly written apps will most likely function exactly the same. If you have any issues, you should be able to fix the app using Xcode 4.6 and keep your pre-iOS 7 Base SDK. You can get an update out very soon so your app continues to work when everyone upgrades to iOS 7 soon.

Once you know your existing app works as-is under iOS 7, you have time to properly update to iOS 7 (of course you should have been doing this over the last few months).

When you are ready to take advantage of the iOS 7 features and the iOS 7 look and feel, update your app with the Base SDK of iOS 7 and do whatever is necessary to make it look and function properly. Then submit an update. Also decide what Deployment Target to use. For some, the Deployment Target will be all the way back to 4.3. For many, only supporting iOS 7 makes sense. For many, supporting iOS 6 as well as iOS 7 is the way to go.

rmaddy
  • 314,917
  • 42
  • 532
  • 579
  • I think there's more UI elements than just action sheets and alert views that will change with the new OS. According to the public pages on Apple's site (not under NDA), every UI element has changed. So if you're using standard controls they will look new on iOS 7 e.g. switches, naviationbuttons, disclosure buttons etc etc. – Craig Sep 05 '13 at 04:30
  • I cannot go back to ios 6 – user4951 Sep 05 '13 at 04:32
  • @Craig Under iOS 7, every UI element is different - but this is only for apps with a Base SDK of iOS 7. Existing apps with a pre-iOS 7 Base SDK will not display any of the new look and feel except for alert views and action sheets. – rmaddy Sep 05 '13 at 04:32
  • @JimThio Do you mean on an iOS device that you updated to iOS 7? – rmaddy Sep 05 '13 at 04:33
  • Please change 100's to hundreds of thousands. – uchuugaka Sep 05 '13 at 04:57
  • @uchuugaka That's what I said - "100's of thousands". – rmaddy Sep 05 '13 at 04:59
  • @rmaddy: Hey rmaddy if I have an app written like this, and I want to test it also on iOS7 - does this mean I need two separate devices? one running iOS6 and one running iOS7? –  Sep 05 '13 at 07:36
  • @rmaddy, you're right. Please change "100's of thousands" to "100s of thousands" – Craig Sep 05 '13 at 08:40
  • Doh. Somehow I didn't see the word thousands. Ugh. – uchuugaka Sep 05 '13 at 09:15
  • 4
    “Properly written apps will most likely function exactly the same.” Not really. For example, in the keynote for the iOS7 introduction Apple showed off a translucent Navbar. Some apps can have the content hidden under the Navbar without any impact on functionality but others—including mine—allow users to tap on objects that are now under the Navbar. It’s only a few lines to fix, but it’s not because they were coded wrong. Likewise, if you use custom buttons for settings or navigation, you’ll need to re-do them to match the new look of iOS7. – JScarry Sep 10 '13 at 21:31
  • If Apple changed the way a method works, you will have to pick a new method to do what you want or change what you are doing. Most people will also want to re-do their icon, launch, and background images. I suspect that for most non-trivial apps, you’ll have to make a significant number of changes before you are happy with the way it looks and runs under iOS7. – JScarry Sep 10 '13 at 21:32
  • @JScarry An app with a Base SDK of 6.x or earlier won't get the new translucent functionality when run under iOS 7. It will look and function just like it always has. – rmaddy Sep 12 '13 at 14:06
6

I agree with the accepted answer, but would like to add some info based on experience I just went through with a client project.

The project is iOS 5.1+ compatible, but looks terrible when rendered with iOS 7 UIKit controls (buttons, table views, etc). The client isn't ready to to change the graphics to make the rendering of those iOS 7 visual elements not clash badly.

So - Have to be able to test and release a version of the app that is build against iOS 6 interface/lib (the iOS 6.1 SDK).

Using instructions here I was able to get the iOS 6 SDK installed in my Xcode 5:

Is it possible to install iOS 6 SDK on Xcode 5?

I then changed my project settings to build with iOS 6.1 SDK.

That allows me to run on my iOS 7 device (for testing) and shows all the UI elements as they looked in iOS 6.

Note: I did not go to the work of getting the iOS 6.1 simulator SDK for testing. You may want to do this. (I have network/other issues that mandate all testing really has to be done on a real, configured device.)

End result: I have iOS 6.1 SDK available to link my project against, and the effect of this at runtime is that the app calls the iOS 6.1 support library in iOS even though the device is running iOS 7 and has the iOS 7 support library available.

See also here:

http://blog.spacemanlabs.com/2013/09/how-to-support-old-ios-sdks-in-xcode-5/

Community
  • 1
  • 1
Bill Patterson
  • 2,495
  • 1
  • 19
  • 20