Well, I got the new XCode and I saw it's nice new storyboard features. It's really nice and I LOVE IT. I spent about 2 or so weeks making a new app that I wanted to update. However, when submitted it through xcode, it gave me this error
The Bundle is invalid. The key UIRequiredDeviceCapabilities in the Info.plist may not contain values that would prevent this Application from running on devices that were supported by previous versions.
So I went back and set the deployment target to 4.0, but it wouldn't let me build. Soon after I realized storyboards were only compatible on iOS 5. Is there anyway I could get it working on iOS 4 by converting them to XIB's somehow?
I really don't want to just submit a new app that's iOS 5 compatible, because most people don't have iOS 5...
Thanks.
According to this, storyboards are absolutely not compatible with iOS4 as they rely on new runtime classes.
Related
I want to develop a new iPhone app and I before developed an app and has been rejected from app store because I was using StoryBoard that is not work in prior iOS 4.3, so I used XIB instead.
Now the minimum version is iOS 4.3 and I want to know is now best time to use StoaryBoard or keep using XIB in my new app?
Hope anyone got my mean.
Thanks in advance.
Storyboards are unavailable on iOS 4.3 and prior. Storyboards only work on devices running iOS 5 above. Since your deployment target(minimum supported OS) is 4.3 you have to stick on the Xib file
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 the use of storyboards in Xcode 4.2 production ready and recommended?
That is, would iPhone/iPad developers that have used storyboards recommend (for native iPhone/iPad apps) to definitely use storyboards? Or are there some gotchas and issues still with the concept?
P.S. Also do storyboards assist in getting a Universal Application designed/working?
This depends, for the most part, on your target audience. The only potential deal-breaker is the fact that using storyboards requires you to set your app's deployment target to iOS 5.0 or later; a storyboarded app cannot run on any earlier version of iOS.
If you must cater to previous versions of iOS, you have to continue using individual nib files if designing your interface with Interface Builder. I'd also recommend sticking with whatever you're already using in your existing projects. (You can introduce storyboards into your existing projects in steps, but remember that they'll only work in iOS 5. There's a WWDC 2011 presentation that walks you through this process.)
For new projects, storyboards seem to be the way to go, as long as you're sure you won't need to deploy to previous iOS versions.
Also do storyboards assist in getting a Universal Application designed/working?
Not sure what you mean by "assist", but you have to create one storyboard of nibs for each device family. So one for iPhone/iPod touch, and one for iPad.
It would be interesting to know how much of the market you are missing out on by targeting only iOS 5. I have noted that there is a significant percentage of iPhone users who dont upgrade their iOS be it from iOS 3 to iOS 4 or even iOS 5 so any apps targeting iOS 5 will mean they can not download any app you create.
I started out using iOS 5 with storyboard and it's a great feature, but had to pull back and use xibs so that I get backwards compatibility. There's just too much of the market you will miss out on by only targeting iOS 5.
ARC is a great plus, and just for that feature alone I am happy with the transition to iOS 5. Not to mention the new CLGeoCoder class and JSON now included. Anyone who wants to use JSON API have a look at this great tutorial from Ray Wenderlich.
I did a search here already, and haven't found a clear answer to my question, so I thought the time was right to post.
I have an iOS application that was developed using Xcode 3.2 and SDK 4.2. When I built the bundle, I targeted iOS 3, so that people running older iPhones (like my wife who has iPhone 3 with iOS 3.x on it) can run the application. The app was also tested on, and runs fine with, the latest 4.x iOS.
With the release of iOS 5, I want to make sure my app is compatible. There is nothing new in iOS 5 that my app uses. I have installed the latest version of Xcode and iOS SDK. My question is this : if I rebuild my app using this new Xcode/SDK combination, and set the target iOS level to something older than 5, for backwards compatibility, this still means that my application is built for, and is thus compatible with, iOS5, correct? I will of course test it with iOS 5, but I want to be able to claim it's supported on iOS5, while still maintaining backwards compatibility.
Do I understand correctly how this works?
Thanks!
Mark
Yes, that's no problem. You should always build with the latest SDK but if you set your Deployment Target to, let's say, 4.2 (which is common for many apps), or even 3.0, as you intend to do, of course it will run under iOS 5.
Testing it will still be wise since there are some changes that might lead to bugs in iOS 5, but in general, it shouldn't be a problem.
If my deployment target is set to iOS 4.1 and submitted to apple, and they test the app on iOS 4.3, would that cause the app to malfunction? My app was rejected for a bug that I am unable to recreate on my iPhone 4. The exact same device model they tested the app on. I simply cannot find the bug or error in my code. Any advice would be greatly appreciated.
If you build your app to target iOS 4.1 it should run on iOS 4.3. It's possible that your app does something that works on 4.1 but causes a problem on 4.3; I had that myself with an app already in the store, and had to post an update so it worked correctly under a newer iOS release.
Note that you can tell the iOS Simulator what version iOS to simulate: on the Hardware menu, select Version, and subsequent runs will be tested against that version of the system libraries.
The simulator is not a perfect reproduction of a real device, but hopefully you can do this to reproduce the behavior that Apple has seen on their devices.
Did you test it on your iPhone 4 with iOS 4.3? There's two parts to the puzzle. If they rejected it for crashing under iPhone 4, you have to check all the different iOS versions you claim to support. The target iOS 4.1 should still make it work on 4.3, you just might have a crash (which apparently you do). Through testing with that actual software version on your iPhone, you'll find the bug and hopefully squash it. Good luck!