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;
}
Related
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.
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.
I have to make some changes in an existing app. That app was last update in June when iOS6.0 was not launched. I am wondering how the orientation works properly on the devices running with iOS6.0?? As that build contains deprecated methods of oreintation?
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
This method doesnt get called in iOS6.0 then how that app in app store is working fine in iOS6 devices? Additionally if i run this app from xcode using its code, then it doesnt support orientation for iOS6. Now my client is saying app on app store is working fine with orientation in all the devices and the new build is not supporting orientation. I know I can fix this issue by using new methods for orientation
-(BOOL)shouldAutoRotate
but just curious to know how older app is working fine on iOS6 devices using deprecated methods when those method are not even getting called in when i run it using xcode.
The older applications were compiled using iOS 5.x SDK, that's why they can run fine on iOS 6, the problem occurs when you compile non iOS 6 compliant code with iOS 6.x SDK.
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.
Ok,
So say I put some iAds in my iPad app. Assuming that I implement it via the iOS4.2 update that comes out next week.
Now, say I release my product but the majority of users haven't installed iOS4.2 in their iPads yet. Does that mean that my app will not run on their systems (meaning, my app requires iOS4.2), or does it mean that it'll run in their system (say iOS 3.2.2) but just the iAds won't show?
Regarding making your app available on iOS 3.2 devices: Make sure to weak link iAd.framework (i.e. in your target's settings, choose 'Weak Link' next to iAd.framework) as it is not available on iOS 3.2. You should also check for availability like
if (NULL != NSClassFromString(#"ADBannerView"))
{
// handle ad loading here
}
else
{
// no iAds available.
}
It depends how you compiled your app.
You can specify that an app can run on iOS 3.2.2, but can still use features of iOS 4.2, by carefully checking the availability before using these features.
You can also specify that your app can only run on iOS 4.2 and later; then you can use iOS 4.2 features without checking the availability.
So, it's your choice. Read this Apple document.