How can I tell Asset Catalog (.xcassets) to use the Same Image for Multiple Image Wells?

We have several Xcode app projects, and we’re upgrading all of them to use the latest Xcode 5 features, including Asset Catalogs (.xcassets).

All of our default (launch) images already include spacing for the status bar, and we want to use these images for both the iOS 5,6 and iOS 7 launch images. Further, we don’t want to include multiple copies of the same image in the project.

  • How to pop from one view controller to another view controller
  • UIPickerView: NSAttributedString not available in iOS 7?
  • How to integrate Unity into a Swift 3 iOS project
  • Hide activity indicator
  • Objective c - UIActivityViewController orientation mode
  • iOS Keyboard Location and Orientation
  • One of our projects is correctly set to use the same images for both of these image well sets. However, this was setup more so by accident.

    Besides editing the Contents.json file directly (which is a last-resort workaround if need be), how can we do this using the Xcode GUI editor for Asset Catalog?

    What we’ve already tried

    1) Dragging and dropping the image to a different position… just moves the image to the other set

    2) Dragging and dropping the same file from Finder to the Asset Catalog… creates a new copy of the image

    3) Dragging and dropping the image with option (alt) pressed… creates a new copy of the image

    6 Solutions Collect From Internet About “How can I tell Asset Catalog (.xcassets) to use the Same Image for Multiple Image Wells?”

    You can right click on the .xcassets file and choose ‘Show in Finder’. Go to the ‘Image.launchimage’ folder and open the Contents.json file in a text editor. Here you can see that unassigned slots don’t contain an “filename”. You can add this manually. For example change the following:

    {
        "orientation" : "landscape",
        "idiom" : "ipad",
        "extent" : "full-screen",
        "minimum-system-version" : "7.0",
        "scale" : "2x"
    }
    

    Into:

    {
        "orientation" : "landscape",
        "idiom" : "ipad",
        "extent" : "full-screen",
        "minimum-system-version" : "7.0",
        "filename" : "Default-Landscape@2x~ipad.png",
        "scale" : "2x"
    }
    

    Now safe the file, and voila!

    I solved this by using build scripts to copy the right xcassets file in for each target. Details here

    I think I’ve found the solution: Simply drag the default images that you want to be used for iOS 6 and 7 into the iOS 6 bucket. You get a warning about not having an iOS7-only image but the build works in the iOS7 simulato, an iOS7 iPhone and an iOS7 iPad.

    I solved this by removing old xcassets and added new xcassets by using Don’t use app catalogs

    In my case I am using cocoa pods. The cocoa pods script Pods-resources.sh somehow caused the problem. Removing the asset parts from the script solved the problem.

    Make sure to clean your project and delete derived data folder.

    Parts to be deleted can be found here:

    https://stackoverflow.com/a/21309102/832111

    I upgraded to cocopods 0.37 and the problem was solved. If you used cocopods then it was probably its fault.