Hi i am developing an application for iOS 7 actually the application runs in a 3.5 display and my plan is to upload it to the app store.
I´m not using auto layout so it doesn´t fit into a 4 inch display. With this specifications can I upload it to the app store or is mandatory to develop the app for an 4 inch display?
You must support the 4" display.
Starting May 1 (2013), new apps and app updates submitted to the App Store must be built for iOS devices with Retina display and iPhone apps must also support the 4-inch display on iPhone 5.
https://developer.apple.com/news/index.php?id=3212013b
If you want to get passed Apple Submission Program, your UI will have to look consistent across device screens. So yes. Think about your users.
Yes, you do have to support both iPhone screen sizes. It is possible to make two interfaces and differentiate between them using the following precompiler macro
#define IS_WIDESCREEN ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
This is a boolean, and you can use it in any other code you have in your app, like if you were to change the interface based on which screen size, call it in a if statement in your ApplicationDelegate method
if (IS_WIDESCREEN) // load 4" nib
Related
I'm writing an app that needs to target a minimum of iOS 5.
I've also written it so that it is compatible with the iPhone 5 4" screen.
I'm not 100% certain but I think I saw something around that said Apple will not allow apps to use the full 4" screen without being a minimum target of iOS 6.
i.e. if you target iOS 5 and your app uses the 4" screen then the app will be rejected.
Is this true? If so I'll have to decide what to sacrifice.
No this isnt true, you can set the minimum iOS version in the build settings to 5.0, and still support iphone 5 screens.
The sort-of-reverse is true, though. If the Base SDK isn't 6.0, then you can't use the iphone 5 screen size (which would be impossible anyway since no iphone5 can use < 6.0).
There are some sacrifices you have to make though, like you can't use autolayout if you also support ios5. You'll have to handle the varying screen size manually.
So I am developing apps for the iphone 4s-, but I want iPhone 5 users to be able to access the app as well.
I want to make it so that if the user has an iPhone 5, it just has the little black bars at the top and bottom that you see in some other apps (I basically want to keep the formatting for the 3.5 inch screen.
Is there a way to test iPhone 5 on the simulator?
You should try deleting the default launch screen of the 4" display from the app summary. I think that shall do it
Is there a way to test iPhone 5 on the simulator? Because I can only run 4
iPhone (Retina 4-inch) equals the iPhone 5
When I am building an application for both the iPhone 3.5 inch & iPhone 4 inch, is it possible to test both form factors using the iPhone 5, instead of having to keep switching between phones?
I know that the iPhone 5 automatically puts black bars beneath and above any app that is not iPhone 5 compatible, but it would be great to be able to test apps in that way.
I doubt it's currently possible, as I haven't found any options for that in Xcode myself, but it would be awesome if Apple would add that feature. Thanks in advance for any responses.
If you remove the Default-568h#2x.png from the project (just remove it's target membership) and clean the project you app is presented in 3.5 inch mode.
There is not way the set the run parameter too force it in 3.5 inch mode. You could also just connect both iPhones to you development machine and when you want to debug the app select the device you want to test on.
I think it should be enough to not supply a Default-586h#2x.png launch image. Just have Default.png and Default#2x.png, then the app should be letterboxed on the 4" simulator.
I have an application in iphone market which works for iPhone 4s and lower version. So now iPhone 5 has been launched which bigger size screen, my question is what all changes i have to do in my application so that it will be compatible with iPhone 5 also.
1) Do i have to rebuild my app for iPhone 5?
2) Do i have to make changes only in UI ?
3) Will the iPhone 5 will its make it compatible?
Your valuable replies will help me a lot. Thanks in advance.
Here is my answers,
1) Do i have to rebuild my app for iPhone 5?
If you want to utilize the complete screen space, you can add Default-568h#2x.png and rebuild the app and release it.
2) Do i have to make changes only in UI ?
You can utilize the complete screen space for iphone 5. You can code for screen modifications in case of other iPhones.
3) Will the iPhone 5 will its make it compatible?
Yes. It will make it automatically compatible. It will add a black strip on top and bottom to compensate for the extra space in the screen unless you add Default-568h#2x.png.
If your app uses the standard UIKit provided by Apple, you only need to add a 4 inch launch image to your app, and it will automatically resized itself. But if your app using custom controls or graphics-heavy like in games, you might want to adjust the images and take advantage of the larger screen.
You also have to make sure the methods you used do not deprecated on iOS6 to prevent the app from crashing. Some references if you need further reading.
To make older app compatible with iPhone 5 You need to look for Following things.
Latest Xcode version 4.5.
Open your project and select Upgrade settings for new version.
Add Default-568h#2x.png for new resolution .
For UI you have to change your xib's object autoresizing property.When you select View Go to
inspector and select size property It will show you None, Full Screen, Retina 4 options . Set autoresize property for all your Buttons , labels and check xib for retina 4 and None both.It is same like you set it for Landscape and portrait .
5.Some other changed will be in code because some method has been depreciated for ios 6.0.
6. After doing all this .You can run it on iphone 5 simulator for testing.
I have an app that was using GLKMatrix3 and its supporting functions. I found that the GLKMatrix3Multiply function would always crash on iPhone 5 hardware. Easy to workaround using GLKMatrix4 instead, but the point is that I would never have found the problem without actually trying my app on iPhone 5 hardware.
I was told to file a bug for the GLKMatrix3 problem, so maybe this will be fixed. But the code runs just fine in the iOS 6 simulator.
I learned from this that, whether or not you need to rebuild your app for iPhone 5, you do need to at least run your app on a device before advertising support for that device.
I have an app which is developed with older SDK i.e. 5.0. I want to modify my app so that it won't be run in letter boxed mode on iphone 5.
But at the same time I won't be switching to autolayout feature and use sdk 6.0.As my app has many hardcoded rects and runtime aligned UI elements I will modify my app to check the screen size and make special coding for iPhone 5.
Is it possible and are there any chances of app rejection in case I go by this way of not upgrading to SDK 6.0 and not using autolayout features?
You will not get rejected for not using AutoLayout. That is a feature available for you to use if you so wish. It is not mandatory for iPhone 5.
In regards to the iOS 6 SDK, I highly suggest building against it. There is no guarantee that Apple will continue accepting applications with a Base SDK of iOS 5 or below in the future, so you should prepare now.
As for the iPhone 5, you can still build against iOS 6 SDK, and not support the iPhone 5 'tall mode'. To support tall mode, you need to include Default-568h#2x.png, which will indicate that you have provided a launch image for iPhone 5, suggesting that the application supports it too. If you don't include this image, then the app will run in a letterboxed mode, emulating the display of on iPhone 4S or below.
If you do wish to support the iPhone 5, and you want a way to determine whether you're running on it or not (for your special cases), you can use a #define to check (place in a header file that is imported everywhere, possibly a header included in your .pch).
#define IsRunningTallPhone() ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 568)
Then throughout your app, if you need to check if you're running on iPhone 5, call IsRunningTallPhone() (or call it whatever you think is best)