iOS8 extensions - what happens on iOS 5/6/7? - ios

I have an application that was developed to support older versions of iOS as well, but I recently started on working on a Today extension in iOS8. Now my question is, what will happen to my app in the store? Will it ignore it and make it iOS8 exclusive? If not, I wonder what happens when a user runs it under iOS 7 for instance?
I have found absolutely no answer to this, has anyone been luckier than me on his research?
Thanks in advance,
Laszlo

Your extension functionality will not be available for lower versions(iOS7 and lower), However the app still run without any problem in lower versions.It has been explained in WWDC-14 session 217 Creating Extensions for iOS and OS X, Part 2.

Related

Use Old SKTextureAtlas or SpriteAtlas

I made a game that makes use of many textureAtlases. I am currently using SpriteAtlases in the assets.xcassets folder which works great until testing devices below iOS 10.
Running on any devices at iOS 9 displays this issue below and it won't load the textures.
-[CUIThemeRendition newImageFromCSIDataSlice:ofBitmap: usingColorspace:] Unsupported pixel format in CSI got 5
Unable to create unsliced image from csi bitmap data.
I couldn't fix this issue (I read that it might be a bug) so my only two options I can think of is to either use the old .atlases in the project bundle or only have my game support iOS 10.0 and newer when using the spriteAtlases. Which is the better option or is there another alternative?
Using the .atlas method is old and inefficient. The XCassets .spriteatlas is, by far, a better usage of memory and will make your project run better.
My recommendation would be to not support iOS 9 and lower. Users still on iOS 9 are such a small minority, you would be screwing your iOS 10 users by using this inefficient method. At this point, most people have upgraded to iOS 10 or newer or bought a new device.
It gets to a point where us developers physically cannot continue to support older iOS versions. In fact, if I remember correctly, Twitter just recently dropped support for iOS 9. I think it would be a good idea to follow suit.

Cannot download On Demand Resources contents after iOS 10

After upgrading some of my devices to iOS 10, I am unable to download ODR contents anymore within my app. Devices which still have iOS 9 are still working without a problem.
Does anyone currently suffering from this problem? Any suggestions on how to fix this?
I logged an Apple Developer Technical Support Issue (DTI) on this as I could not find anything that could fix the issue. After a lot of back and forth I got this from them:
In iOS 9, the ODR was handled by the OnDemandD daemon inside the OS. However in iOS 10, we switched ODR to now be handled under the AppStoreD daemon. There were some issues that arose from this transistion, including this specific issue. Also, this issue was on our side of the table, so it’s nothing you or your users did.
I cannot get into the details of the issue, because I honestly don’t know what they changed, but as far as I know, it is stemmed from the daemon transistion above.
Now that iOS 10.2 is out, and will be updating across the iOS fleet, hopefully we'll see and end to this issue. In the meantime my game has been getting bad reviews and feedback from players experiencing a black screen instead of our game levels. :-(
I had the same problem after updating some devices to iOS 10.
I solved it by setting the loadingPriority of the NSBundleResourceRequest to 1.

Will an app built with an older version of Swift be able to live indefinitely on app store?

Alright, have a question here -
A while ago I built an app in Swift using pods that, for one reason or another, disappeared one day. Meaning the project was there, but it reverted to a MUCH older version and was inrepairable. It's a great app and I released on the app store, so others are using it and that's great but I am unable to update it. The binary is gone.
My question is - with the updating of the app store and Swift (i.e. Swift 3 now instead of 2) will my app be able to run still on the app store in years to come?
Right now with Swift 3/ios 10 it still runs well. It's good.
But can an app written in an older version of Swift live indefinitely on the app store? Or will it die one day? Hoping its not the former..
Whether an app built with Swift will still be available in the App Store in a few years doesn't depend on the fact it's written in Swift. For a released app, Swift is compiled to binary code and Swift libraries are bundled with app. There are no Swift specific dependencies left.
However, Apple might have other reason to pull your app:
Your app hasn't been updated in a long while.
Your app hasn't been updated for the latest devices (e.g. new screen formats).
Your app was built against an old iOS version that lasted iOS versions are no longer compatible with. (Each iOS version contains compatiblity code to run old apps, e.g. iOS can still emulate the pre-iOS 7 UI.)
Your app crashes on newer devices or iOS versions.
Your app violates App Store rules but it wasn't discovered on the initial submission.
Having said that, if your app doesn't crash or violate rules, it'll likely take a few years until there is a realistic chance for it to be pulled.
even app which are written in objective - c also works fine which is more older then swift, then why your swift app will not work? it will definitely work without any failure!! doesn't matter whether it is swift 2 or swift 3!!!

ios 5 and ios6 compatibility features -xcode

I want to create a map based app but apple will no longer user google maps in ios 6.I dont want to upgrade to the developer beta yet as I am waiting for the final release. But I also want to get started as soon as possible. If I start my project now will it change or the code will differ when the ios 6 is available? In other words if I make a successful built in ios 5 will it be unsuccessful when i upgrade to ios6? Will I have to rewrite the entire thing or everything will be compatible resulting to an also successful built? thank you in advance..
Your code will work fine.
Almost nothing changes with iOS 6 and MKMapKit in terms of code.
The only thing which works different in iOS 6 is the way you call the native Map App from inside you app. (if you are using this functionality)
You don't need to wait to use beta versions of XCode, you place them in different locations on your hard drive and leave the current XCode in place.
Then you can test in the iOS 6 simulator just to make sure it works as well as on iOS 5.

Does iOS 6 MapKit work on previous versions of iOS?

I`m developing an app that uses MKMapView, and I need it to run in iOS4, iOS5 and iOS6.
My question is, if I develop using the new iOS MapKit features, can someone using iOS4 see things like routing from sourceAddress to destinationAddress?
Yes and no.
If your write a maps app using iOS 6 features, it won't run on older versions of iOS, unless you check for the existence of those methods.
More generally speaking, the MapKit framework is smart enough to show the iOS 6 maps where appropriate, and to use Google Maps everywhere else. However, you need to avoid using the routing features where it's not supported. So, to abswer your question, users on iOS 4 and 5 will not see the new routing features.
So, if your app doesn't use new maps features, you're totally fine. If it does, you'll need to take steps, such as weak linking and method checking to ensure that your app doesn't try to run new API on older system versions. Running new code on iOS versions that don't support said code will crash, of course.
Please refer the answer given in this post.
Should I be worried about rumors that Apple will stop using Google Maps in iOS6?
It has descriptive answer of your question.
In the documentation, it states which OS versions specific functions work on. I don't have the documentation with me (on a PC currently) but if those methods were added in iOS6 they won't be available in earlier versions. What you can do to work around that is use #ifdef to check the OS version of the user and disable features as necessary.
Please note, that iOS6 is under NDA so questions about specific methods introduced in it should be kept in the Apple Developer Forums.
Edit: #ifdef is not the way to stop it from running. You just have to check for the version of the OS in your app and do something like:
if (os >= 6) sourceAddress stuff
else if ((os >= 5) && (os < 6) ignore sourceAddress stuff

Resources