After searching a lot, i found that the LaunchImages are special, and aren't actually an asset catalog on the device. And the launchImage file name for all iOS devices list as:
- LaunchImage-568h@2x.png
- LaunchImage-700-568h@2x.png
- LaunchImage-700-Landscape@2x~ipad.png
- LaunchImage-700-Landscape~ipad.png
- LaunchImage-700-Portrait@2x~ipad.png
- LaunchImage-700-Portrait~ipad.png
- LaunchImage-700@2x.png
- LaunchImage-Landscape@2x~ipad.png
- LaunchImage-Landscape~ipad.png
- LaunchImage-Portrait@2x~ipad.png
- LaunchImage-Portrait~ipad.png
- LaunchImage.png
- LaunchImage@2x.png
- LaunchImage-800-667h@2x.png (iPhone 6)
- LaunchImage-800-Portrait-736h@3x.png (iPhone 6 Plus Portrait)
- LaunchImage-800-Landscape-736h@3x.png (iPhone 6 Plus
Landscape)
so if you want to get the right launch image for iphone device, just use this code:
NSString *launchImageName;
if([UIScreen mainScreen].bounds.size.height > 667.0f) {
launchImageName = @"LaunchImage-800-736h"; // iphone6 plus
}
else if([UIScreen mainScreen].bounds.size.height > 568.0f) {
launchImageName = @"LaunchImage-800-667h"; // iphone6
}
else if([UIScreen mainScreen].bounds.size.height > 480.0f){
launchImageName = @"LaunchImage-700-568h";// iphone5/5plus
} else {
launchImageName = @"LaunchImage-700"; // iphone4 or below
}
UIImage *launchImage = [UIImage imageNamed:launchImageName];