Will my app work with a new iOS? - iphone

I have made an app for iOS 5.1..
Will the app work with iOS 6 also? Or do I have do to any updates in the code or something?
Thanks!

Apple has good backward and forward compatibility so it should work with no problem
There are cases when you use some specific libraries that your app will need a resubmission
but 99% of the cases your app will just work good
One point to note here: is if apple will change the resolution of their next devices you may find some icons that are low quality (happend when iphone 4 was first release)
But regardless of that your app should work.

Usually the OS versions are backward compatible for the apps.

Related

IPhone app build and deliver to store without device

I have a simple question.
I use an old IPhone with ios version 3.1.3 and I have to deliver an app for the ios version 5.0.
Is it possible to build and deliver an 5.0 app to the store without the correct 5.0 device?
Problem is, it isn't really cheap to buy every single ios version device.
I know it is probably necessary to test on a real device, but I only want to know is it theoretically possible do develop and deliver without the device.
thanks for your help
Matthias
Yes, it's possible. Xcode comes with an iOS simulator that simulates iPhones and iPads running iOS 4.3 and 5.0. However these don't fully match real devices, so you really should be testing on real devices. There's an additional problem that a lot of functionality won't work on the simulator, such as in-app purchases and Game Center. But for basic applications, you can scrape by.
If you're looking to reduce costs, iPod touches are almost identical to iPhones and a lot cheaper, so that's the low cost way of testing on a real device. I would also upgrade your current device to iOS 4 if possible - iOS 3 is practically dead now, so it's better to test on a real device with iOS 4 than it is to try to support iOS 3.
Yes it is possible to deliver an app without the correct version.
I found out, that it is even possible to deliver apps without an iPhone.
even though you can deploy apps without having an iOS device ..or having a device with lower iOS version..
but in future and generally a good advice i will give is to find someone with correct iOS device version(any other version will work too) and get him to try your app using ad-hoc distribution..that way you can get feedback of how your app will perform..
Yes it's possible. You can anyway test most functionality by using the simulator.
With the new Xcode, you don't need the device when you are building for release.
What you need to do is select iOS Device in the menu, then Product -> Archive.
Then you will see the "Validate" and "Submit" options in your organizer.

What iOS version to use when start building an iOS App now and publishing in 1-2 months?

Couldn't find similar questions:
I'm currently designing my app and after that I will build it with Xcode 4.2. My question is what iOS version should I use - iOS4 or iOS5?
I was trying out storyboard and ARC, so it would be great to build the app with iOS5, but I don't know if it will be better to use iOS4 to reach more users?
What are your advices?
Merry XMas! :)
According to this report, about a third of users had updated to iOS 5 in October. The figure has probably increased since then and will continue to increase (especially considering the huge influx of new iOS 5 devices which will enter use after Christmas), so by the time you publish your app it is quite likely that about half of users will have iOS 5.
Whether it's worth losing about half of your potential market for the extra features which are available when developing for iOS 5 is entirely up to you. To some extent, it also depends of what the app is - if it is something targeted at people who make intensive use of their iPhone, chances are they will already have upgraded, so it shouldn't be a problem. If, on the other hand, it's something that is likely to be used by non-techsavvy people, you might be better off making it compatible with iOS 4.
I would say go for IOS 4, you can still use Arc, and StoryBoards are not the end of the world...
I would:
In Xcode, set Base SDK to Latest iOS (iOS 5.0) and set iOS Deployment Target to iOSx.xx where x.x is any version from 3 to 5. The deployment target is where you can decide what is the minimum version of iOS that your app will need in order for it to work. So the lower the number would mean you can reach more targets. Just make sure you do test your app on those versions that you set before submiting to iTunes for review.

Is iOS 4 generally backwards compatible?

I have the following problem, in near future I will need to write a few not very complicated apps for iPhone. I do not currently own an iPhone, so I plan to purchase one for testing purposes. In short would iPhone 4 allow me to test apps written for older ios versions? Any pitfalls? Or would I have to purchase older phones/ipad to do the testing properly?
Yes, to perform a proper test you will need to test on the individual devices you are supporting. The documentation will tell you if the framework/API you are using is supported in the older iOS versions. I'm afraid there will be some subjective answers here as I am sure some apps end up running just fine across many versions with simulator testing. There are many factors to consider when looking at backwards compatibility (desired speed, memory usage, APIs, ...). You stated your app is "not very complicated" so you may be fine. I would test your application on as many devices as possible.
I should also make the distinction that there is a difference between "will it compile" and "does it perform as expected". You can use xcode to test whether the application is compatible by targeting and older version. Whether or not the application runs as desired will be discovered when testing on the specific devices.
You can't run iOS 3 on iPhone 4, so you have to buy separate devices.
But if it is a new app I wouldn't consider to make it iOS3 compatible. Most users have upgraded to iOS4 already. And at the time your app is in the store there will be even less users running iOS3.
Sure, this will remove like 0,5% of potential customers. But you don't want to buy another device for 100$ if you can get only 10$ revenue from the 0,5% customers that run iOS3. And you have to test your whole app again, which will take a significant amount of time.
So you should consider to drop support for iOS3.
See this question: Will an application compiled for iOS 3 run on iOS 4?
It will allow you to test apps which are targeted at older iOS versions, yes.
Performance differences to older iDevices like the 1st gen iPhone / iPod touch are quite significant however. So if your apps require expensive calculations or the like, I'd recommend buying an older, used device too to get a feeling for performance on that generation of hardware.
Note that if you need to make sure the apps you are about to develop will run on very old devices / iOS versions, you maybe need to do without some cocoa classes and methods which require more recent versions of iOS
If you bought an iPhone 4 for testing purpose.. You're testing on the latest iPhone available in the market and that doesn't means your app is ready to target low-end device automatically.
Let's take a deep look: If you've designed an App that must look gorgeous and work right out of the box on iPhone 4, then you're probably making your app a Retina display compatible. That is like playing with 960x640 resolution screen.
Now, if you planned to target low-end device for eg, iPhone 3GS, then all you gotta do is to reduce the graphic assets size by half, as iPhone 3GS is 320x480
That's it! Your App is ready for the low-end device as well, in looks and feels perspective.
Now, let's look from deployment perspective. If you base SDK is 4.2.1 and you're targeting to devices which runs 3.3, then all you gotta do is to make sure you don't use latest libraries/classes which are introduced in iOS 4.2.1, as they won't be available to device which are running on iOS 3.3. If you take care of this part, your app is almost ready to ship out.
From Market perspective. I see all the great apps out there had made their deployment target as iOS 4.0 or later. That means, they are targeting to only devices which runs iOS 4.0 or later versions.
I think, you can try your build in low-end iPhone simulator after successful testing cycles ran on iPhone 4 device. :)
The iPhone is generally not backwards compatible. Sometimes methods, properties, classes etc. are added or older ones become deprecated.
For testing, i would recommend that you have several devices with different iOS Versions depending on the target iOS Version you want to release.
Also check the the iOS Reference Library: Under "Availability" for each function etc. is noted since when it is Available

Do I need to buy Iphone for Iphone development?

Do I need to buy Iphone to develop Iphone applications on MacBook Pro? Or is Iphone SDK for the job?
Thanks.
Technically no, but obviously it would be handy.
Xcode provides an iPhone simulator that can handle most testing (but without support for accelerometer or microphone).
All in all, if you plan on doing iPhone development seriously - get an iPhone.
Technically you could use the emulator with the SDK but you really want some raw devices to test on due to subtle differences.
The iPod touch does a great job for testing apps on a real device. Its performances are very closed to the iPhone and it is much cheaper.
Technically no, unless you building apps related to accelerometer, microphone, sms or auto calling applications. The SDK comes with the iPhone simulator which is more than handy
You can use the Xcode iPhone simulator as well as the iPad simulator to test your code, all of which is free. The only issue will be accessing certain filemanagement which cannot be debugged on a simulator. However, you must have a computer running on Mac OS X and a valid Apple ID to download Xcode. Finally, in order to submit Apps into the App Store, you must buy a $100 developer's license with Apple.
Hope that help! And iPhone development is a ton of fun :)
Thommy
I highly recommend to get the device you're developing for. Since some issues will only will only come up by really using your app as intended.
The touchscreen and it's behavior for example can't really be testet in the simulator. If you want to do more than the next "Fart App" you should invest the money in at least one actuel iOS device.
I will speak from personal experience with a financial prespective
Can you afford it or is the short term compensation from the work going to cover the cost? The latest models are pretty expensive, so I would suggest looking for good deals on models that are a couple of years old. When I say short term, I mean 3 years or less. Because after that, there is a good chance that you are going to need to buy a newer model to take advantage of the SDK features available at that time.
Even if you can afford it do you need it immediately? Are you soon going to be developing features that are completely dependent on hardware and impossible with a simulator ? If no please push the purchase further down the line, by which time you would have made some money (or not) and you can buy a newer model.
Having a latest device gives you the freedom to try out and build apps using the latest SDK features that Apple rolls out, so you can stay ahead in the game. On the flip side, it would be good for development only as long as at least one of the apps that you are developing for runs the highest version of iOS supported by the device at any particular time. For example I bought an iPhone 5S some years ago and now none of the apps I am working on run on iOS 12. So I have very little use for it. Ah I guess the vicious upgrade cycle gets developers too :(

iPhone OS 4.0 backwards compatible with 3.1/.2

I'm building an iPhone application with a base SDK target of 3.1.x. I've got a friend who offered to test it on the OS 4.0 beta, but I'm wondering in advance if I should bother. Will my application run under 4.0 or is it not backwards compatible? I have to imagine it will since apps built for 2.x run on 3.x just fine AFAIK. Any gotchas?
This information is still under NDA and therefore cannot be discussed here, except what was mentioned at th keynote and is thus public.
That said...
I can see the announced multitasking as a gotcha in terms of memory, performance and application state. Testing on OS 4 seems like a good idea in light of that. However, I your friend's device is not a latest-gen hardware device (iPhone 3GS or iPod touch 3rd generation), you will not get test results that deal with multitasking.
Also, remember that when installing the iPhone OS beta, you will need to add your friends UDID to your list of testing devices in your devloper portal or else the device will lock up when you upgrade.
In case you or someone reading this needs to know:
To upgrade, you can either use XCode's Organizer or simply use iTunes. Hold the "option" key and click on the "restore" button. A window will pop up asking you what firmware to use.
Again, thes kind of questions are not yet really legal outside of Apple's develope forum.
I hope this helps. Good luck and happy developing!!
I've been using 4.0 beta for a few weeks now, and haven't run into any problems with my / App Store OS 3 apps. I don't think there were any changes in OS 4 that would break existing OS 3 apps but I can't say so with complete certainty.
Most likely any features from 3.0+ will be in 4.0. Features in 2.x may be removed.
No way to know for certain unless you can use the beta or wait until the official release.
You should always test on as many devices as possible. As mentioned, OS 4 is particularly good to test with just to make sure you interact well with the new multitasking features (which is public knowledge so it's not like saying anything about that would go against the NDA).