Running an iOS7 Project Under Xcode 6 - Image Assets Don't Show Up

Running an iOS7 project under Xcode 6 - Image assets don't show up

Something I found in the Xcode 6 Beta Release Notes:

Images from asset catalogs in projects with a minimum deployment
target of iOS 7 or OS X 10.9 will be available when running on iOS 8
and OS X 10.10, but not iOS 7 and OS X 10.9.(17029658)

Launch images show black, when using Asset Catalog

Have you changed the setting for your project so that it points to the Asset Catalog as the source for your Launch Image?

Sample Image

Why won't image import into iphone app's asset catelog using xcode?

Just change the file extension from "PNG" (upper-case) to "png" (lower-case). I spent a couple of hours futzing around until I finally figured out that was the issue!

Note that screenshots taken with a physical iOS devices have "PNG" extension, and will never work until you change the extension. But screenshots taken on the iOS Simulator have extension "png" and work fine as is.

I've logged this in the Apple Bug Reporter as an XCode Usability issue:
17676619 Can't drag "PNG" to LaunchImages; only "png" works

Xcode 6.1 Warning about Launch Image in Asset Catalog

I ran into the exact same problem this morning. Here's how I fixed it.

  1. Select your Target in the project navigator. Under the General tab, you should see the section for App Icons and Launch Images. Where you see Launch Images Source, click 'Use Asset Catalog'.

  2. You will then see Migrate launch images to an asset catalog dialogue. Click 'Migrate'.

  3. Make sure that your Launch Images Source on the previous screen points to the right image set in your asset catalog. In your case, you would set it to 'Default'.

That should take care of the warning.

How do you update the app icons and launch images to support IOS 6 and 7 simultaneously?

Apple has clear guidelines on requirements for IOS 7 apps but even then, I ran into errors making a single app support multiple OS versions. After getting it to work, I thought I would point out a few areas that were hangups for me to aid others in the future.

I first updated the whole of my app to support IOS 7 cleanly and then went back and enabled previous versions but that process is not necessary.

Just ensure you first set the correct deploy targetdeployment target

Once you set the deployment target, Xcode5 nicely changes the list of default assets it requires to support the multiple OS versions. Ensure you reupload the correct versions of icons at the required resolutions and required filenames (shown below for IOS6-IOS7 support)
Icons, their sizes, and their default filenames in Xcode5 for IOS6 -7 support

Do the same for the launch images, note that you will have to rename your launch images to new names, Xcode tries doing this for you if you let it. Note the new sizes below, as IOS7 expands the launch image background behind the status bar.
Launch images, their names, and sizes required

Finally, manually add the two .plist flags below and you should be set to have your icons render across IOS versions consistently, with no gloss (explanation follows)

manually add these entries to your plist
IOS7 in its new flatness removes the postprocessing the previous versions did where they added a highlight and gloss effect to icons. That effect is no longer done for IOS 7 apps but if you load an app from Xcode5 on IOS 6, it will reapply the default gloss effect. This is infuriating because there no longer is a "prerendered" GUI flag in Xcode to disable that postprocessing. As mentioned above, you need to add the flag manually to your application's plist. In my case, I had to add the flag in two locations to force IOS 6 to stop applying the effect. You can access the plist by either opening the file directly or navigating to the settings in your project overview. You may need to uninstall the app from your simulator and then rebuild the app to force simulator to lose its cache of the old icon.



Related Topics



Leave a reply



Submit