Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top