I am currently developing applications on the 2.2.1 sdk, and considering to upgrading my iphone to sdk 3.0. Can my phone still be used to run old version programs (2.1, 2.2 etc), call, send sms and so on? Or will it be restricted to only be used to test 3.0 developed programs?
Thanks, Hans Espen
The part about "built ... on v3.0" is wrong. Your application does not need to "compilable on v3.0". Apple has never said anything about applications compiled on 2.x not being accepted now, or at any future date. In fact, if you submit an application built against the v3.0 SDK, it will be rejected. v3.0 is still in beta, you are not to build applications destined for the App Store with it. Apple says as much in the email that was referenced, and in the "Getting Ready" doc: "Do not submit applications to iTunes Connect that have
been built using the iPhone OS 3.0 beta SDK."
What you are to do is test your 2.x application running on v3.0. Apple has explicit instructions on what you are to do here: http://adcdownload.apple.com/iphone/important_information_about_iphone_os_3.0_compatibility/important_information_about_iphone_os_3.0_compatibility_1.pdf
As to Hans question, what you are wanting to do is exactly what Apple wants you to do: build your 2.x applications, and test them on your v3.0 phone, following the instructions linked above.
As for your phone's functionality on v3.0, all I can say is that mine works fine, if a little slow at times. 2.x apps work (those that are compatible, anyway), and all functionality is there.
Apple has frozen iPhone development on v2.2 for the past few weeks. All new apps submitted to the App Store have to be on v3 of the OS.
Your phone will still be able to run all your existing apps, and all core services will function. Beware that the OS will be considered Beta and will expire after 30 days. The expiration will require you to download the latest SDK and refresh your device. Not a problem, just an annoyance.
The v3 of the OS is likely to go from beta to generally available during WWDC on Monday (06.08.09), so it may be easier to just wait till then if you do not want to deal with some of the beta hassles.
If you download the 3.0 SDK beta, install it on your device, then you are restricted to only 3.0 SDK development on that device. As far as I know if you have a device with SDK 2.2 and SDK 3.0 you should be able to test your application on both, but as MystikSpiral mentioned Apple has frozen submissions and they are requiring them to be compilable on the 3.0 SDK.
At this point with WWDC next week you should be testing any applications you have on a 3.0 device. It looks like the final build of 3.0 will be released next week alongside a new iteration of the hardware (all signs point to it).
Related
I have released an App in the App Store with target platform 5.1. The app also was developed using SDK 5.1. My customer phoned me and said this is crap because als the jailbroken phones aren't able to download the app yet - because there is currently no jailbroken version for 5.1.
What do I have to do? I'm coming from Android - therefore I want to be really sure what I am doing when applying an App update to ensure that it is also available for 5.0 users.
I also use a Library Project - which also uses SDK 5.1 as shown in the screenshot below.
I would be really glad about some instructions how to reduce the required version for the app and if there are some compatibility troubles/problems occurring to my code when I do this.
You should change the deployment target, in the summary tab of the target, as shown in the image:
And call your customer and tell him there is already Jailbreak for 5.1 ;)
Release App version 1.1 with deployment Target OS as 5.0 or what ever else version you want to include ...
Just found this now while researching another question, so I'm sure this has already been handled, but here's my $0.02, eight years later....
You provided a working app to the App Store. All apps on the App Store are guaranteed to work on compatible iPhones that have not been jailbroken.
If your user is doing non-sanctioned things with his iPhone, it's not really your concern. There were plenty of big-name apps which had the same problem as yours: people couldn't use the latest version because a jailbreak wasn't yet available. They had to wait until such a jailbreak was out. That's the risk you take with using a jailbreak.
The difference here is that if FaceBook or WhatsApp or whatever big-name app changed its target SDK to an iOS version that did not yet have a jailbreak, users couldn't call Zuckerberg on the phone to complain or threaten. You, as an independent developer, got the phone call.
It's a balancing act. You want to use the latest, greatest features of the iOS version, but existing users might not have the latest, greatest OS. So you have to decide what's more important: new features or supporting existing users.
I have an application that I would ideally like to run on all iOS versions, however I think Apple accepts apps only from a version and above (3.0 I think, but not sure). So my question would be, what's the minimum iOS target version you can send in review (and get accepted). If anyone with greater iOS publishing experience would answer my question it would be great and maybe point out some places where I can read about it.
Many thanks!
Sometime last year, an Apple DTS employee posted (and later clarified) on the iOS Developer Forums that the App store would no longer be accepting apps with a Deployment Target lower than 3.0. That might indicate that a lower Deployment Target has or will become grounds for an app to be rejected.
I would never set the Deployment Target lower than that of the lowest OS version among the devices I plan to use to test the app before submitting it to the App Store.
Also, the installed based of devices which haven't been upgraded to 3.0 or above might be too microscopic to be worth a developer's time or effort (unless you happen to still have and use one for some reason).
ADDED in 2013: App store submission now requires that the app support the 4" display, which requires iOS 6.0 or later, which allows a minimum deployment target no lower than iOS 4.3
To back up what hotpaw2 indicated, this is from the News and Announcements for iOS Developers on June 29, 2010:
Make sure that your applications are
compatible with iOS 4. All new
applications and updates to existing
applications must be built with iPhone
SDK 4. In addition, the App Store will
no longer support applications that
target iOS 2.x.
ok... strangely Im having a hard time verifying this... but it's my belief that you must build your app with the latest base SDK (4.0), but you can target an IOS version all the way back to 2.0. Ill continue to try to verify that.
You can only build your apps with the SDKs you have installed.
Since XCode will nuke your old SDKs whenever you upgrade (unless you install XCode elsewhere), it is assumed that you will always be building using the latest stable SDK version. This is in contrast to, say, Android, which will always retain SDKs whenever you upgrade.
Your deployment target can go back as far as you want, right back to 2.0 - but you may find it difficult to actually test it on that platform! Most people would just target 3.x upwards, which gives you as close to 100% coverage as makes no difference.
I’m writing a new iPhone app which doesn’t depend on any of the 3.0 APIs. 2.2.1 should work fine and has a substantially larger user base currently and in the near future as last I checked Apple was expecting iPod Touch owners to cough up $10 to upgrade to 3.0. That leaves a nontrivial number of cheap users who will stay with 2.2.1 as long as they can.
So my goal is to build and release this app using 2.2.1. I know that all app store submissions must run on 3.0, and I plan to do plenty of testing on 3.0. The language on the iPhone OS 3.0 Readiness Checklist leaves me optimistic, but will Apple continue to accept 2.2.1 app submissions (and for how long?), or will they laugh manically and reject any 2.2.1 apps simply to force 3.0?
The main question:
Has anyone on SO released a 2.2.1 compatible app after 3.0 was released and had it accepted (or explicitly rejected with 3.0 being the reason)?
You must test it against both 2.2.1 and 3.0 then I can't see any problems - but I wouldn't assume it will work with both - you must test!
My own app (Task Coach) was built for 2.2.1 (on the 3.0 SDK, but that's irrelevant) and was approved last week, so go for it.
They won't reject a 2.2.1 app unless it fails during 3.0 testing. You should be all set.
Why would they ever stop supporting apps that run in 2.2.1, provided they run in 3.0? You are just not taking advantage of new features, not building a fundamentally different app.
well now it has changed a little. New apps usually come only for iphone OS 3.0 as well as other iphone OS 3.0 approved apps that now longer support 2.2.1 so like for my reson i need the iphone 3.0 software update for ipod touch as for almost every app i want to get doesn't support 2.2.1
I am an iPhone newbie just starting to develop a new iPhone app, and I am wondering if it is better to stick with the 2.2.1 SDK right now or should I actively use features of the 3.0 SDK to build the app? Of course it needs to eventually run on both 3.0 and 2.2.1 devices, so I need to test it on both. But the question is whether there are cool new things in the 3.0 SDK (Xcode and Interface Builder features) that makes it worth using even if I am targeting 2.2.1. For example, I would need to avoid using anything that relies on new 3.0 APIs, but maybe there are still cool new widgets or something that work fine with the 2.2.1 APIs. Is that the case or not? I'm just trying to figure out where I put my focus... 3.0 or 2.2.1.
All apps submitted to the AppStore now have to be 3.0 capable. Luckily the iPhone market is pretty cutting edge and will get the updates. If they are downloading apps, they are probably updating their OS.
If you are planning to launch your app immediately I would say go with 2.2.1 but if you are looking out greater than 3-6 months then go with 3.0 stuff. There are lots of great things in 3.0 such as virtual goods, apis to control itunes music and other benefits. If you app requires features of 3.0 just start developing for it now. 1.0-2.0 seemed to take about 3-6 months for people to update.
Start using the new features but you can't release an app yet for 3.0.
In short, do both. There is plenty of power in 2.2.1 to get your app out the door. Then you can add enhanced features that will improve the experience as 3.0 is officially launched.
I would focus on 2.2.1 for now because that is the most important currently. Make sure it works on OS 3.0 though.
You should use 3.0 - it will be released in one week, and practically everyone will upgrade straight away.
iPhone 3G owners get the OS update for free via iTunes and will probably upgrade almost immediately. iPod Touch users have to pay and the improvements aren't very compelling for iPod users. So there is likely to be a split in the audience for your app if you target 3.0 for a while at least. Eventually so many apps will come out needing 3.0 that Touch users will be forced to upgrade and then it's not such an issue.
Of course, if the 3.0 feature makes your app that much more compelling, go for it, but a lot of app concepts don't of course.
Actually apps submitted to the store need to be 3.0 capable, but that doesn't mean they have to use 3.0 features not available in older versions.
I would actually suggest that you stick to features that will add to your application regardless of them being new to 3.0 or not, and not just add the "new 3.0" features because they are cool or new. Add what your application needs to be successful and nothing more. the less requirements your application has, the more potential customers you have.
Apple is now requiring app developers to submit apps that target 2.2.1 but also build for 3.0. I (and I imagine a large majority of small/part-time developers) only have one iPhone and since the upgrade to 3.0 is irreversible, I wanted to get some thoughts out there as to what are some best practices for minimizing risk during the transition.
I understand there is no foolproof way of doing full regression testing on both OSes, but any thoughts on how one might minimize regressions would be helpful.
Here's Apple's exact text:
Millions of iPhone and iPod touch
customers will move to iPhone OS 3.0
this summer. Beginning today, all
submissions to the App Store will be
reviewed on the latest beta of iPhone
OS 3.0. If your app submission is not
compatible with iPhone OS 3.0, it will
not be approved.
Existing apps in the App Store should
already run on iPhone OS 3.0 without
modification, but you should test your
existing apps with iPhone OS 3.0 to
ensure there are no compatibility
issues. After iPhone OS 3.0 becomes
available to customers, any app that
is incompatible with iPhone OS 3.0 may
be removed from the App Store.
You really can't test on a device against both 2.21 and 3.0 unless you have two devices. If that's really important, you can think about an iPod Touch (assuming your app doesn't require an iPhone).
As far as the simulator, once you install the 3.0 sdk you won't be able to build targeting 2.2.1 any longer. The old 2.2.1 build target gets replaced by a 3.0 target. To support both, you should think about building a virtual machine that retains the 2.2.1 sdk.
However, I agree with Alex... not much need to think about supporting both platforms. 3.0 is solid, and it's clear from today's Apple mail that it's now the major focus, as far as testing & compatibility.
Edit 5/17/09: One thing I learned after this post is that on the Mac, you can't virtualize the Leopard client OS. Apple only allows you to run the server version of OS X in a virtual machine. IMHO, this really limits software developers as a group, among others, and I hope this is changed eventually.
What is your concern about upgrading your phone from 2.2.1 to 3.0? The latest revision seems more or less solid.
I came across this doc on the iPhone Dev Central that might be useful: Technical Note TN2246