I am new to developing games with Cocos2d and trying to find out a solution for a simple problem (but the solution seems to be a complex one).
My app has been rejected by Apple because it wasn't supporting 4 inch iPhone display. The app currently is developed using Cocos2d version 0.99. Now I want to upgrade it to a greater version so that I can handle 4 inch display. I cannot find a proper way to migrate from an older version to new one. The only thing I want to achieve is to handle 4 inch display. Is it possible with the older version? or it is necessary to upgrade. If there is a way, how should I achieve it?
Related
for now I am keeping my app in iOS6 style until I get a chance to update some of the artwork. I am wondering, if I update to xCode 5, is there a way to compile my code so that it will still produce the iOS6 style and install it on my device with iOS7? Getting a bit tiring uploading my code through TestFlight...
It's not the Xcode version that provides the assets, its the iOS SDK.
That means apps which are compiled using iOS 6 SDK and lower will use the older style default assets, however apps which are compiled on iOS 7 SDK will use the new style controls.
Your best bet would be to create assets and style the controls to your specification if you want to use the new Xcode.
No, Apple has changed the look of all system components. As far as I know, it is not possible to force your app to use the old style on iOS 7.
You would get the new look on iOS 7 (when using iOS 7), When your app would run on iOS 6 it would look like it was on iOS 6.
It's pretty simple and straight forward. You don't have to do nothing just make sure it looks good on iOS 7 also.
To be more clear if you use AlertView you would get the new style when your app runs on 7 (with parallax etc.) and old look when run on 6.
My suggestion to you is just test it on iOS 7 and fine tune graphics if needed.
We are planning for a new mobile application for iPhones/iPads this month and we are outsourcing this project as we dont have much knowledge about the subject. Could someone tell me if current iOS applications will run on iOS 7?
I would appreciate help in this as I tried to search but could not find related articles as most of the articles talk about features and not backwards compatibility.
Sure. It will support older versions of iOS. If not millions of applications in Appstore will be unusable in iOS 7. You need to download iOS 7 SDK once available to exploit iOS 7 specific features, thats all.
Yes current iOS application will run on iOS 7, because apple will take care that if they launch new iOS then they create new iOS in such a way that it's always compatible with older iOS apps other wise if someone upgrade the iOS and the apps of previously developed will not work on it then they loose their customers/users. So don't worry new iOS 7 will also support apps developed for iOS5/iOS6. There were only new features in iOS7.
Although iOS 7 has seen a major overhaul in UI field as well as several back end changes too. But the main point for your question is that any application if working on previous versions of iOS should work in iOS 7 too. The OS will take care of all the UI instances drawings in different versions of OS. The situation where the applications supporting newer versions of OS not working on older versions is that they use some features only available to a specific version of OS or later.
It would run in iOS 7, but probably not as you would expect it to run, so my recommendation is to create 2 (or 4 if you build for iPad) 1 for iOS 6 - and one for iOS 7 + just detect the iOS version and load the storyboard for the appropriate version
It is always better to start development in the latest available version of iOS. In this case 7 is the latest with all the support for developers. You can get the relative iOS SDK and Xcode.
Long Story Short: Start Development in the latest iOS and nothing shall go wrong.
From the research I had done, indeed app built using 6.1 SDK and Xcode 4.6 will run on iOS7, however, the app will have an iOS6 look and feel on iOS7.
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.
I am a beginner Apple developer and I have some issues I would like to resolve.
First of all, I am curently working on Xcode 3.2.6 because I haven't enrolled for the developer program yet. I would like to know if Apple only accepts apps (for the App Strore) compiled on SDK 4.
Secondly, I want my apps to work both on iPhone 3 and 4. What would you advice me to do? I have read in several developer forums that in order to achieve this I have to build my application with 3.1 iOS as a target. Is this correct?
Finally, is there any problem due to the difference in resolution between iPhone 3 and iPhone 4? Which resolution do you think I should use?
Thank you in advance,
Cherry
Set Base SDK to latest (4.3).
Set Target SDK to 3.1.
Avoid features available only in iOS 3.2 or later (e.g., don't use blocks, don't frameworks introduced in iOS 3.2 or later, always check availability of methods). Later, when you get more experience with Objective-C, you may try to combine features of more modern iOS, but still keep compatibility with older iOSes.
Don't worry about resolution. It affects only images – if you want to take full advantage of Retina display, then you will need to create images for both resolutions (std. and hi-res).
P.S. I suggest you to avoid support for iOS 3.2 or earlier. iOS 4 introduces a lot of nice and helpful features. And I pretty sure, Apple will revoke support for iOS 3.x soon after iOS 5 release.
If you are aiming for iOS 3, you will end up not using the features of iOS 4, which is the majority.
This is Apple's statement.
Target the latest iOS release.
Targeting the latest release allows you to take advantage of all the features
available in the latest version of iOS. However, this approach may offer a smaller
set of users capable of installing your application on their devices because your
application cannot run on iOS releases that are earlier than the target release.`
Target an earlier iOS release.
Targeting an earlier release lets you publish your application to a larger set of
users (because your application runs on the target OS release and later releases),
but may limit the iOS features your application can use.`
But I would suggest that you target the iOS 4 as people are now targeting iOS 5, and in another 8 months, I am sure Apple would release iOS 6 (They are very quick with their updates), and I personally feel that targeting iOS 3 is not going to give you great results in the long run.
If I am creating an iPhone app, is it worth trying to make sacrifices with functionality (e.g. with MPMoviePlayer) in the application and support previous versions of the OS?
Are the majority of iPhone users running iOS 4?
Will I lose out on a big portion of the market if I only support iOS 4?
There will still be a lot of iOS 3.x users because iOS 4 cannot be installed on original iPhones and older iPod touches. And iOS 4 barely works on iPhone 3G. You can still use functionality of iOS 4 while still targeting older versions though.
I've been learning through doing user testing that a lot of people don't upgrade their apps, much less their OS. Add that to the fact that lots of devices can't run 4.0, and I think you'll limit your market if you don't support at least 3.1.x.
As to 2.x, this report says it was less than 13% 5 months ago, so it's probably safe not to support for a new app at this point.
First, you're forgetting something: You need to support 3.2 if you want your app to run on the iPad.
You don't have to "sacrifice functionality"; you just have to code your app to detect what features are available at runtime and fallback gracefully.
If your app isn't free, then the real question is "Will users who don't upgrade buy my app?", and I suspect the answer is generally no. Apparently a substantial portion of the 2.x installed base are iPod Touch users who don't want to pay for the upgrade.
The other factor is the amount of work. If you use few enough iOS 4 features that it's not much work to also make it run on 3.1.3, then supporting 3.1.3 is a no-brainer. Of course, never support an OS version you can't test.
If this is a brand new app, there's not much point in supporting older versions of the OS. It will require making sacrifices when programming the app, and over time everybody will eventually move to iOS 4.