Image.xcassets issue with displaying splashes for devices with iOS 8 - ios

Which images I should use if I only need to support landscape orientation and devices with iOS 7 and upper?
I have unselected all unneeded checkboxes, but the loading image does not appear for example on simulator 4s or 5 (c,s)? It only appears on iPhone 6 plus simulator. What can be a problem?

You've encountered a bug with asset catalogs. You can't use an asset catalog to provide a launch image for an app that launches into landscape. To do what you're trying to do, you'll need to use the old-fashioned "named" launch images at the top level of your app bundle.

Related

ios - Lower app's resolution

I'm developing a game with a cocos2d. It was using Default.png images to identify resolutions. Now I switched my launch screen's to .xib file. Now my app run's at native resolution on all devices. But on iPhone 6 and 6 Plus I expect some perfomance issues, so I'm looking for ways to lower app resolution but still use .xib launch screen.
How do I accomplish this?
You can't. Once you setup a launch screen, your app will run at full device resolution for all possible devices. You can't provide a launch screen and have your app run at "iPhone 5" size on iPhone 6 devices, for example.
Your only option is to stick with launch images and have no launch screen.
Of course if you need to support full sized iPad Pro support, that requires the use of a launch screen. (Not true any more as of Xcode 8).

iOS9 Causing iPhone 5 Optimization to be lost

EDIT To clarify question
I have a large app that has been out for a few years. It runs perfect on all iPhone sizes (4 up to the 6 plus). It supports both iOS 7 & iOS8, and is Optimized for iPhone 5.
My issue is with iOS9. The app no longer uses the built in scaling that iOS provided to fit the app onto the 6 or 6P screens.
Not only that, but it is rendered as if it were on a 3.5" screen. It is not recognizing the Default-568h#2x.png static image. Causing it to letterbox on an iPhone 5.
Is this a bug in iOS9 that does not recognize the static splash screen image?
Thank you so much!
This was caused by my Default-568h#2x.png file being localized (Which is required by iTunes Connect).
When I removed the localization from the file, it started rendering perfect in iOS9.
This does not help anyone whose app is currently in the store with a localized Default-568h#2x splash screen file.
As far as I can tell the only way around it is to have a 'Splash Screen' .xib file defined in your project settings (you then lose the auto scaling for iPhone 6 and 6+, which was perfect for our application).
I have a case open with Apple regarding this. They told me that they could not look deeper into it until iOS9 was out of Beta (tomorrow morning), and if it was still happening, than it is indeed a bug on their side and (hopefully) would be fixed soon.
I use Images.xcassets to manage assets of app. I had to create a LaunchImage in there and just add images for iphone Portrait ios 7-9 and not have any for retina 4.7 and retina 5.5 and things worked again.
If you use a Launch Storyboard then you need to remove that and add xcassets as mentioned in previous paragraph
This is in xcode 7

iOS Splash Screen not showing up on device - strange issue

I am making a test sprite kit game, and when I run it on the device, the splash screen doesn't show up although it does work on the simulator.
Here are some screenshots:
Normally I set the target to iOS 7.1 and later, so I use a .xib file and LaunchImage file in xcassets.
I have put 2 correctly sized splash screens in the iPhone portrait iOS 7&8 section, and have selected "Portrait" under iOS 7 and later. The link from the settings file is definitely going to the correct file.
When I run it on the simulator (presumably all devices are iOS 8), the .xib file is used and it displays that splash screen.
When I run it on my iPhone 4, it displays a black screen. In my other apps, it would choose the image from xcassets and display it, but this is not the case.
Does anyone know how I could solve this problem?
Edit
Basically, I have put 4 images into xcassets for a splash screen. I have selected iPhone portrait for iOS 7 and iOS 8.
In the settings pane I deleted the launch screen file reference, so the only reference is to the xcassets launch image (It points to the correct place). I have also deleted the LaunchScreen.xib file.
But when I run the app on the device and the simulator, no splash screen shows up.
I faced similar issue and fixed by Restarting the Mac and iPhone
Uninstalling the app from Simulator/ iPhone helped to fix this issue.
I was having the same problem, and I finally figured out a solution. I want my launch screen to show up on ALL devices capable of running iOS 7 or later, when running my landscape-only Sprite Kit game. Most devices that run iOS 7 can be upgraded to iOS 8 or greater, except for the iPhone 4 (which is stuck with iOS 7.1), and the launch screen wasn't appearing on my iPhone 4 test device. Then I stumbled across Apple Tech Note TN2244. As described in the Tech Note, once you edit the info.plist to enable landscape orientation for iOS 7.0+ iPhone launch images, the correct launch image will appear. As a side note, if you disable the launch image asset catalogs as suggested, the XCode Swift compiler gives you warning messages -- but you don't really need to disable launch image asset catalogs, and if you configure them properly the warnings will disappear and landscape launch images will now work just fine on all devices, including iPhone 4.
Your app's launch image is displayed as soon as your launch your app. Hence the name. It is removed when the appDelegate appDidFinishLaunching: method runs. If you are app has very little to load, your image might get displayed and removed before you have time to see it.
If you want to manually set a longer display time for your launch image, you can add this code to the appDidFinishLaunching: in the appDelegate.m file:
sleep(4);
4 being the number of seconds.

storyboard launchimage when supporting iOS7 & iOS8

I'm creating an app that supports iOS8 and iOS7.
iOS8 supports to use Storyboards as launchimage...
But this doesn't work for iOS7.
But if I'm using Launch Images from the image.xcassets the launch image isn't loaded any more!
Is it possible to use storyboard-launch images for iOS8 and launch image from the Assets for iOS7?
Thanks in advance!
Edit:
As soon as I'm using both, iOS8 LaunchScreens is black!
For Device using iOS 7 you can do as usual, what we used to do using images.xcassets
For iOS 8 devices you have two ways..
Simply you can use LaunchScreen.xib.
this image show how Xcode by defaults sets LaunchScreen.xib for iOS 8 launch screen file.
If you don't want to set LaunchScreen.xib as launch screen file and want to display some launch image as you want in iOS 7 device, so just remove launch screen file name and make it blank(see below image) and delete LaunchScreen.xib file from Xcode. In this case iOS 8 device also takes launch image from launch images from images.xcassets.
Reference : Suryakant Sharma
This is quite a common problem, which happens when we build a new application with xCode 6.2 (and later), and set the deployment target to iOS 7. The lack of LaunchImage causes the app to run in 3.5-inch mode on iOS7 device.
If you specify both LaunchScreen and LaunchImages, the app runs fine on both iOS7 and iOS8.

Xcode 6.1.1 Launch Images for Universal build

Faced the problem with Launch images in Xcode 6.1.1
When I set all of the images - iPhone 4s, iPhone 5/5s and iPhone 6 doesn't show up (black screen), however the resolutions for the particular device is set right, as all of the images are on their places.
https://dl.dropboxusercontent.com/u/71223199/temp/01.png
I use Landscape right/left.
Funny stuff is when I'm adding them one by one, they first work.
https://dl.dropboxusercontent.com/u/71223199/temp/02.png
But once I add images for iPhone 6/6+ they don't work again.
iPad works fine.
Have anyone seen any step-by-step tutorial on how to set up images?
I have my another project (portrait orientation) and it works fine when images for all devices are set up.
Sounds like Apple didn't fix this landscape-only launch images bug with their latest update to Xcode. You'll likely have to manually edit your project's info.plist file to include the UILaunchImages array. The selected answer here worked for me for the previous version of Xcode:
How do I create launch images for iPhone 6 / 6 Plus Landscape Only Apps?
More detail on why this particular bug exists (at least it did in Xcode 6.1) in the last post of this thread:
Supporting iPhone 6 and iPhone 6+ with different launch/splash screen image for iPad Portrait and Landscape orientations

Resources