My application supports both iOS 6 and 7, is there anyway load images automatically from xib files or code depending on images name, like to differentiate between iPhone and iPad I add ~ipad or ~iphone, and the corresponding file will automatically loaded.
and if there is no such a method like this, what is the easiest way to load different resources for each one.
Thanks
No, see Apple's provided iOS transition guide where they say you must manage it yourself and provide a snippet for determining the iOS version before loading assets. https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/SupportingEarlieriOS.html#//apple_ref/doc/uid/TP40013174-CH14-SW1
Related
I found a bug in Xcode 4.6 during the App Store submission process.
The problem is from May 1, 2013, Apple reject applications that doesn't support retina display and iPhone 5.
To understand if an application is optimized for iPhone 5 the process looks into the launch image section in the settings:
The problem born when you try to localize the splash screen: to localize splash screen you must drag the image NOT in the launch images section, but in the supporting file folder in project navigator. Then localize the image and call it Default.png (and with other appropriate name for iPhone 5 and iPad). This procedure cause the launch images sections are blank even if all works fine: in the device you can see the correct splash based on device language.
But, because Apple looks into this section to understand if an app is optimized for iPhone 5 you can't able to publish the app and the process returns you this error: iPhone 5 optimization required.
This is a bug in Xcode because the process I mentioned works fine...
Has anyone have encountered this problem and found a solution to it?
please check this:
"....you can also localize your application icons and launch images by placing files with the same name in your language-specific project directories. Even if you provide localized versions, however, you should always include a default version of these files at the top-level of your application bundle. The default version is used in situations where a specific localization is not available..." from Apple
I had the same problem, and I have solved it using UILaunchImageFile key in the app Info.plist and renaming the splash images, check the documentation for a more complete explanation
I have already created an app compatible with ios<5. Which already exists at Workout DJ FREE for Spotify
Now in next version I want this app compatible with ios5 too. For that what do I need to do?
I have planned to go with either of these two options
Make separate xib for each screen
Create all images with more retina display & name it with #(some)X. Like we do #2x for retina display.
I don't think the 2nd option will work at all, will it?
I'm seeking guidance from the ios5 experts.What should I do? Should I go with either of above two options or there is some other alternative that is standard & best.
You shouldn't need separate views for the iPhone 5 and <= iPhone 4.
Just add a new Default screen for the iPhone 5 to trigger automatic view sizing to work on the iPhone 5 and make sure all of your Autolayout or resizing masks are correct.
Yes, you'll want to make sure you supply retina graphics so everything looks good on the retina displays in the iPhone 4 and iPhone 5.
Just follow the below tutorial. You will have idea of how to set design for iPhone 4 & 5 compatible.
http://mobile.tutsplus.com/tutorials/iphone/working-with-the-iphone-5-display/
Cheers.
There are multiple ways of doing this, try googling it. Maybe try checking out this forum article here: http://forums.macrumors.com/showthread.php?t=1356952
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 updated the iOS 5 to iOS 6 . Is there need to change or configure any settings to run existing application on the Xcode ?
Well there are a list of deprecated methods which you should view inorder to run your iOS 5 applications in iOS 6. This is because lower version apps do not run in upper versions.
Here check this link I had provided an answer of deprecated methods before :) .
Does Anyone know which methods are Deprecated in IOS 6.0?
Depends on your application, the best for you would be to go through release notes on apples developer site in order to have look at all what you need to change.
And ya on the whole you will definitely need to work out on the rotation API which has been depreciated in IOS6.
If you're using static libs you should check that they have the armv7s slice, otherwise you should force to armv7 only
Also if you want to support iphone5 you'll have to add a default image name it Default-568h#2x.png
And also check that your view displays correctly on a 4 inch screen, if not try playing with your autoresizing masks before going to handle that directly in the code. Of course if you want to support only ios6 you can check out Auto Layout
I was recently developed a big project on iPhone in Xcode version 4.1.
Now i need to convert this app for iPad.
I have verified so many links but all are regardig Xcode 3 ond it's extensions.
How to upgrade, how to resize the view etc etc
Please help me. Thanks in advance
Your best bet would be to create two new projects, one for iPhone, and the other universal and see what differences are in place there, especially the app delegates.
Quite a lot of the things won't be needed, however the app initialisation need some consideration, and most views tend to happily scale up to ipad resolutions without much or any additional work.
That was how I added iPad support into one of my apps I was writing anyway.
Depends how your app is build. If you are using Builder in XCode you can simply create new xib for each controller/view you have in app and name it with suffix ~ipad.
So if you for example have MyController.xib you will create MyController~ipad.xib and your controller will be loaded from this file automatically when run on iPad.
Changing the project preferences to universal gives you the possibility to specify a second MainWindow.xib in the info.plist file (Main Nib file base name (iPad)) which is the starting point for your iPad Interface. At this point running the app on an iphone would load your original interface and running on an iPad gives you the blank window once you created the corresponding blank MainWindow file.
Edit: You need also a second AppDelegate that holds the reference to your new window.