iPad Pro requires 167x167 App icon and 2732 x 2048 (landscape) launch image. But where should I put them? Xcode 7.1 Asset Catalogs don't provide any place to add iPad Pro specific icons or images.
My launch image is size specific, so using storyboard for this isn't a good option.
Apple commented on this issue: "Latest beta (7.2b3) added 83.5#2x app icon slot to asset catalogs, and Developer relations reported in a radar comment that they no longer support launch images and will not be adding the iPad pro launch image size to asset catalogs."
Taken from here.
Use Launch Screen storyboard.
You can also disable Launch Screen File and Launch Images Source from project General settings and use the old way - define all Launch Images in Info.plist.
Info.plist:
<key>UILaunchImages</key>
<array>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>DefaultPro-Landscape</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{1366, 1024}</string>
</dict>
...
</array>
More info about UILaunchImages in Info.plist in this post:
How do I create launch images for iPhone 6 / 6 Plus Landscape Only Apps?
You should use Launch Screen Files for iPad Pro instead of Launch Images.
First, from iPad Pro, iOS don't support Launch Images, so you can not find the right sizes for iPad Pro's launch images in Xcode 7.1.
Second, if you don't use Launch Screen File, you app running on iPad Pro will be scaled, which is so called 'Display Zoom'.
It looks like you'll need to use the Launch Screen storyboard or xib file to support launch screens specific for iPad Pro.
Per Apple, you should be able to use both the launch image assets to support pre-iOS8, and the Launch Screen file for iOS8+. From the Apple App Distribution Guide :
"For iOS 7 deployment targets, you can supply both a launch screen file and launch images. In iOS 8, the launch screen file is used, and in iOS 7, the launch images are used."
also these docs state:
"If you also need to support earlier versions of iOS, you can continue to supply static launch images in addition to a launch file."
However, in my case even though I have a LaunchScreen.storyboard file, it isn't getting used when I have launch images in an asset catalog. i.e.: I always see the asset catalog launch images instead of the launch screen. I verified the Launch Screen file is set in the info.plist and that it has the "Use as Launch Screen" flag set. I'm also using size classes and auto layout.
If you don't find the "wells" where to put the icons in asset catalogue, perhaps you changed your App settings from iPhone to iPad at a later point and then the iPad "wells" are not visible. You can turn them on by doing this:
The set will only contain image wells for icons that are relevant depending upon your project's configuration at the time the asset catalog was created. If an image well is missing, expand the settings inspector and check the appropriate boxes under the App Icon pane depending upon your project's deployment target and supported devices.
Related
I have tried the following, but iTunes still wants me to upload iPhone screenshots.
1.) Devicefamily set to 2 info.plist.
2.) General - Targets - Deployment Info - Devices is set to iPad
3.) App Icon checked ONLY for iPad.
4.) All assets being used across project in Assets.xcassets are checked for iPad ONLY.
I have attached screenshots for all four points mentioned above. On iTunes it still wants me to upload screen shots for iPhone.
Please assist, I am having a hard time finding the needle in the haystack.
On the same screen where you have options of Screen Shot Scroll down Select the Build first and upload the SS for iPad only, itunes will detect automatically depending on you build (iPA).
In image asset editor we can add launch image but it'll not appear in devices I can say atleast iPhone devices but If you ignore to add LaunchImage in assets xamarin won't let you compile the app.so you have to add the LaunchImage and at the same time you have to have Launch Screen.storyboard Why is this anomaly ? and how to keep on using static images
I have created separate imageset in asset library and added a image view in launch screen and referred that newly added imageset but its not working screen appears empty
It's not a Xamarin problem, but iOS itself.
Launch image required for iOS version lower than 8.0. So if you want to support them, you need to add all images in to assets.
LaunchStoryboard you can use for all iOS version above 8.0 (included). It will stretch out automatically for each device.
You can select most appropriate solution for your project in Info.plist
I keep getting this error when I try to submit my app to the store using Xcode:
ERROR ITMS-90475: "Invalid Bundle. iPad Multitasking support requires launch storyboard in bundle 'com.companyname.appname.'"
Anyone know what this error really means?
This is because you need to specify how your app is supposed to handle multitasking on iPad.
If you don't want to handle multitasking right now, you can simply disable it by going to the "General" tab of your target:
I solved the problem in this way, see here:
If you must opt out of Slide Over and Split View, do so explicitly by adding the UIRequiresFullScreen key to your Xcode project’s Info.plist file and apply the Boolean value YES.
You need to add a Launch Screen (Xcode > File > New).
Under iOS > User Interface you select "Launch Screen" to add it to the project.
For the iPad you need to support all 4 orientations.
Select in Xcode your target file, and under the General Tab, go to the "App icons and Launch Images".
Here you select the Launch Screen file you created.
When you launch the app you'll see the launch (bitmap) images are not used, but the Launch Screen Storyboard.
You can either do it as André showed or directly add:
<key>UIRequiresFullScreen</key>
<true/>
On your .plist file.
If you are using Cordova, you might want to use the cordova-ios-requires-fullscreen plugin (see How to disable iOS9 multitasking through Ionic/Cordova?)
Update: you can also use the cordova-plugin-ipad-multitasking, which seems to also prevent another issue (ITMS-90474)
Update: this should now be fixed using Cordova tools 5.4 without the need for these plugins.
In Xcode 14.2, setting the launch storyboard should be as simple as selecting the required storyboard as Launch Screen File in the "General" settings for the target. This not only avoids spelling mistakes, it also ensures that the storyboard is included in the bundle. However, I found that uploading to the App Store failed as per the OP if support for multiple windows is included (that is, if requires full screen is not checked).
If the storyboard has been configured in this way then the problem may be because the name of the storyboard includes a .storyboard extension, which it's not supposed to (see also post by Muhammad Ibrahim). This can be fixed without checking the box for requires full screen:
In Xcode, go to your build target and select the General tab.
In the section "App Icons and Launch Screen", check if a Storyboard file is selected and if it has a .storyboard extension.
If so -> tap the name of the storyboard to edit it, take off the .storyboard extension and press return.
That's it! The name of the storyboard will no longer show, but the problem will be fixed.
IF you ONLY want to set RequiresFullScreen For iPhone, and support iPad Multitasking, try this:
<key>UILaunchStoryboardName~ipad</key>
<string>LaunchScreenIPad.storyboard</string>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIRequiresFullScreen~ipad</key>
<false/>
LaunchScreenIPad.storyboard is the name of LaunchScreen for iPad.
iPhone will still use Launch Images Source pictures.
Apple Document Ref: Creating Platform- and Device-Specific Keys
If you want to support split views in iPad, in your info.plist file, set just "LaunchScreen" as the value for key "UILaunchStoryboardName", instead of "LaunchScreen.Storyboard" and you need to support all 4 orientations for iPad.
When I try to publish my app to the app store, it shows me two errors:
First: Missing required icon, the bundle does not contain an app icon for iphone/ipod of exactly 57x57 in png format for iOS version <7
Second: Your binary is not optimized for iphone5 - new iPhone apps and app updates submitted must support the 4 inch display on iPhone 5
Does my icon need to be 57x57 or can I use any size and the system will resize it for me?
thanks.
Yes, you need a 57x57 png in your build. I would recommend reading the iOS Human Interface Guidelines: App Icons material.
When u publishing an app icon you shouldn't use transparency it is forbidden apple does it for u automatically.
When you changed png to jpg the background became white , and solved your problem retroactively:-)
I actually found a solution for that.
Whenever you added icon to the image asset, but it's not showing after you archive the app, its because xcode requires jpg image, if you only change the extension .png to .jpg, it won't work.
Took me awhile to found out.
I am developing a universal app. My deployment target is 5.1 I want it to run portrait-only on the iPhone/iPod, and in landscape-only on the iPad.
I am testing with the iPhone and iPad simulators, as well as the latest versions of the iPod touch and iPad.
It works as expected on the iPhone. The portrait launch image comes up first, then the app starts. No problems. It works fine on the simulator as well as my iPod. No matter what the rotation, the app starts and continues to run in portrait (bottom home button), which is as intended.
It works correctly in the iPad simulator. The landscape launch image comes up, then the app starts in landscape. Whatever the rotation, the launch image and the app start and run in landscape as expected.
However, on my iPad, the portrait launch image displays in portrait-upside-down, no matter which way the iPad is rotated. When I remove the Default-Portrait~ipad.png and Default-Portrait#2x~ipad.png files from my project, XCode replaces them with Default.png and Default#2x.png, which are for the iPhone--not the iPad, and which also launch upside down.
My InfoPlist includes these settings:
Initial interface orientation: Portrait (bottom home button)
(There is no key for Initial Interface orientation~ipad)
Supported interface orientations: Portrait (bottom home button)
Supported interface orientations~ipad:
Landscape (left home button)
Landscape (right home button)
I tried changing the Initial interface orientation to Landscape, and I tried removing that key altogether. Neither change made a difference in the way it ran.
I’ve now tried everything I can think of to make this work. Does anybody have a solution?
Thanks.
Okay, I finally fixed the problem. Seems like a bug in XCode to me, but I should have caught it.
I located all my image files in the "Supporting Files" folder. This was not a problem for my music files or most of my image files. However, when it came to my Default-Landscape~ipad.png and Default-Landscape#2x~ipad files, XCode did not like it.
I had dragged those files into their respective boxes on the Summary page, and they were accepted. Then I moved them from the top level folder to the "Supporting Files" folder--just like I had done with the Default.png and Default#2x.png files for the iPhone.
When I built the app, I got no errors. When I ran the app, I got no warnings.
However, HERE IS WHERE I WENT WRONG. I did not run the app with the Profiler until late in the game, and apparently even when I did, I must have ignored the two warnings. Finally, I noticed them: Icon specified in the Info.plist not found under the top level app wrapper: Default-Landscape~ipad.png. I had the same warning for Default-Landscape#2x~ipad.png.
So, I deleted those two files from my project. Then I dragged them into their respective boxes on the Summary page, just as I had done before. But this time I did not move the files from the top project folder. I ran a Clean. Then I ran the app.
IT'S FIXED.
Hope this helps somebody else. ;)
I had a similar issue and was able to fix this issue by changing the order of the supported orientations in the plist file to be [0]:LandscapeRight and [1]:LandscapeLeft