new build of iPhone app uploads successfully but iTunesConnect expects iPad screenshots for 12.9” display - ios

I’m trying to upload the latest build of an iPhone app and am having trouble submitting new screenshots on iTunesConnect. My previous build in November 2017 used Xcode 9.1 and I now run Xcode Version 9.3 (9E145). The current iOS target deployment is 8.0 like my previous build.
iTunesConnect’s Media Manager currently has no problem with previously submitted screenshots but for some unknown reason it expects iPad screenshots for a 12.9” display. Yes I tried creating new images using iOS6 plus using ⌘+1 to scale to 100% but Media Manager rejected these images when I tried to drag them into either its iPhone window or its iPad window. I was able to drag the previous set of iPhone images back into the Media Manager iPhone window without issues. But still the Media Manager won’t let me submit the next build.
The app happens to run on iPad even though it was designed for a device that can be held in one hand. These are the deployment settings.
So should I switch the device from Universal to iPhone and upload a new build to iTunesConnect ?
or could there be another reason why Media Manager won’t allow me to submit the latest build ?
e.g. this report - about changes to take effect on April Fool's day

Change Your device to iPhone then try to upload app on iTunes, As of now you have kept universal so iTunes is assuming your app will also work on iPad too that's why it's asking for a screenshot of iPad also.

This report is officially announced in feb so that every one can made changes and submit their apps accordingly. You can check this news from here. So its not a April fool.
Here is the some image sizes that you have to follow even you got the same image properties from media manager also. Before uploading image make sure size of images is properly matches.
Here I noticed that in x-code 9.x , 100% resolution screen shot does not give you that resolution so I take the help of designer. So I suggest you to use photo tool and make a perfect resolution it works properly.

Related

Apple Rejection App: We also noticed that your app did not run at iPhone resolution when reviewed on iPad running iOS 10.2.1 [duplicate]

I made an iPhone App with Xcode. The devices setting is set to "iPhone". But in iTunes Connect it is rejected because it doesn't run on the iPad.
That is weird because it is an iPhone app, but when I checked it in Xcode, I can run it with the iPad simulator,however I think that normally this is not possible with an iPhone app.
I have added pictures to make my question clearer:
So what is gone wrong and how can I fix it?
EDIT:
Picture from resolution center:
Thanks all, I Found the problem/solution:
In my info.plist there was an extra row called supported interface orientations(iPad) where the portrait mode was added.
I have no idea how this got added here but when I removed it, the problem was solved.
From the Apple iOS App Store Review Guidelines (https://developer.apple.com/app-store/review/guidelines/):
2.10 iPhone Apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
Basically, if you set an app to "Universal" it will have iPad and iPhone versions of the UI and will appear in the search results for both. If you set it to iPhone only, it will still be installable on iPads, but it doesn't appear in the search results by default. Additionally when a user does install it on an iPad it will just scale up the UI to best fit the screen. You cannot prevent your app from running on iPads.
Every app can run on the iPad no matter if it is supported or not. The option you have in Xcode is if you want to configure it to look good on the iPad using it's own storyboard. If you configure it for both iPad and iPhone your app fill get a + in the right corner of the price on the App Store and show up on iPad searches. However if you don't configure it to support iPads it'll not show up on searches of the Apple App Store, unless osmose selects iPhone only. You can easily submit your app to the App Store, without it being rejected my friend.
Hope that helps. Keep coding.
Nothing is wrong here , you can do this in debug mode for development purpose. Even you can run it on your iPad device from xCode. Don't worry about it, nothing wrong here.

iOS launch screen does not update

I've updated launch screen on an enterprise app, but it won't update when installed on an iPad with the existing app. I've tried completely deleting the app before installing a new version, but it still launches with the old launch screen image.
I've tried installing the new app on another iPad where this app was never installed and the new launch screen appears as expected. Both iPads run the same iOS v9. The app was built with xCode 7.2
In summary I've tried the following scenarios:
updating existing app (version 1) on iPad A - with a new app (version 2)
iPad A, loads the new app v2 with launch screen from version 1
installed new app (version 2) on iPad B, which never had this app.
iPad B, loads the new app v2 with correct launch screen
then I installed old app version 1 on iPad B
iPad B, now loads the old app v1 with launch screen from version 2
It seems the iPad somehow caches the launch screen from the very fist install regardless which version it is. Deleting the app and reinstalling does not seem to help and it does not look code related as the correct launch screen images was loaded on iPad B
I just had this problem and i found that deleting the app off the device or simulator, then restarting the device or simulator seems to fix the issue.
I found just restarting the device didn't work.
I had tried many kinds of solutions and restart your iPhone is the only way.
In xcode, under Assets.xcassets, I clicked on LaunchImage and then unchecked Universal, checked iPhone, unchecked iPhone, and checked Universal again. Then ran build and it cleared the old image.
Simulators and iPhone caches the launch images.
this can help you
1>Clear the derived data under your developer/xcode folder
2>reset the device by pressing home button and lock button at same time
3>Push your code to device and it will work, if this doesnt work then creat ipa file and install using itunes after resetting the device and it will show the new launch images
The answer by Steve still holds as of iOS 13.2.3, but I wanted to add a few more items just to back up this point that otherwise exceed the restrictions of a comment.
For starters, I did delete the app, restart the device, etc but because this issue occurs when a user updates through the app store, those fixes are simply not viable.
Then, I decided to take more drastic actions within the app to try and remedy this. These actions were taken with TestFlight builds.
In my particular case, the problem stems from a version string that misrepresents the installed version.
Step 1 then was to simply remove the UILabel in question. Re-running the app would still cause the label to appear in the app.
Step 2 then was to create an entirely new LaunchScreen storyboard and set it as seen here:
Launching the app still presents the old launch screen.
This leads me to believe that something in the project structure is the source of the caching, and no reasonable changes to the LaunchScreen by the developer are going to get around this.
Update
The app has been released to the Appstore, and using the official store release, the app presents the correct launch screen.
Solution
Again, thanks to the thread I have referenced above I found a way to solve this issue - name your new image differently from the one there was before in case your new one has the same name as the old one and put it out of the *.xcassets folder to the project directory and reference it in your UIImageView. And that's it.
Just delete app from simulated iPhone home screen.
On iPhone 11 Max version 2-finger click and drag up from outer margin of the iPhone which will bring you to the home screen and exit your simulated app.
Then 2-finger click and hold your app, delete app and close simulator.
Open Xcode and click play button to run your simulation and the launch screen should be updated.
P.S. Deleting Xcode cache and derived data couldn't hurt.
See Rambo's post about the issue. At least on iOS 13 you can clear this cache yourself:
import UIKit
public extension UIApplication {
func clearLaunchScreenCache() {
do {
try FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/SplashBoard")
} catch {
print("Failed to delete launch screen cache: \(error)")
}
}
}

iPad Pro. Disable native 2732‑by‑2048 resolution

Need to disable the iPad Pro native 2732‑by‑2048 resolution for my app.
I found that it was auto activated if the app use a Launch Screen(LaunchScreen.storyboard).
Is there a way to disable iPad Pro and continue to use Launch Screen.
(I'm surprise that even with no icon for iPad Pro, the native mode was activated, i'm sure a lot of dev don't have the app ready for this)
Thanks
Are you using LaunchScreen.xib or LaunchScreen.storyboard? If so, if the version of Xcode you use supports the iPad Pro, it will compile the LaunchScreen for everything Xcode supports.
You could use an older version of Xcode which does not recognise the iPad Pro as you don't need it.
Or you could use Images.xcassets and not provide an iPad Pro launch image, though according to what you're asking, this doesn't seem that suitable. You could always use the LaunchScreen.xib/storyboard as the initial storyboard, so as far as the app is concerned, you're using LaunchScreen.storyboard instead of Main.storyboard. Though not providing an app icon should hold all this back, as it does with my current apps. Perhaps file a bug report with Apple? Hope this helps!
Official answer from Apple:
If an application includes a launch storyboard and is built with Xcode 7.1 or later, that application will run at native resolution on the iPad Pro regardless of whether the application includes a 167x167 icon.
If you would like to see this behavior changed in a future version of iOS, I suggest you file a bug report. Bug reports can be filled by visiting http://bugreport.apple.com.

"You must provide a screenshot for 5.5-inch Retina display, because your app binary supports 5.5-inch Retina displays" while building in Xcode 5.1

I've updated an old app with a minor bug fix. The app was compiled using Xcode 5.1.
(No way to use assets catalog or to add iPhone 6 and 6 Plus images.)
But still when I try to submit it to review I'm getting this error:
You must provide a screenshot for 4.7-inch Retina display, because
your app binary supports 4.7-inch Retina displays.
You must provide a
screenshot for 5.5-inch Retina display, because your app binary
supports 5.5-inch Retina displays.
The easiest fix would be to upload 4.7 & 5.5 pics which is fine but I'm more worried about the "because your app binary supports 4.7-inch Retina displays" part.
Although it feels like a bug in iTunes connect, any one found a workaround for this?
TL;DR
We've had the same issue yesterday although our app did not state support or optimization for iPhone 6(or +).
Using Xcode 6.1 to build the IPA, we've simply re-scaled relevant images, and had no further issues submitting the app.
Update
Some developers are not encountering the issue with their app's submission, while having no 4.7/5.5 inch scaled screenshots, meaning there's a possible flag in the binary which enforces this limitation.
The longer version
Apple now demands screenshots for the new screen sizes, without being dependent on the actual app binary.
As per the Developer portal, if an app states it supports iPhone 6, it must provide at least one properly* scaled image ( * proper size is listed in the link above).
All current releases to the app store should support the latest device, including iPhone 6 and the 6+, by default, therefore the error message is terrible. There is no actual relation to the binary. Just a new iTunes Connect limitation.
This is a recently added limitation by apple as our previous release to the App Store using Xcode 6.0 did not require us to add these new scaled images.
I had this issue too and I discovered that it was because I had inadvertently set the "Launch Screen File" (General Project Settings) to the name of Main.storyboard. When I cleared that out I was able to Submit for Review successfully.

Are non-retina images required for purely iOS7 apps? [duplicate]

The next update of my iPhone app will be targeted for iOS7 only. A couple of questions?
Does this mean I can delete all the non-retina images from my app?
If I have only retina images left do I still need to mark them #2x?
Does Apple keep older iOS versions of my app on the store so those running older versions of iOS who have bought or want to buy can still access it?
Any help would be most appreciated.
Yes you still need to have the #2x at the end. Yes you can drop all the non-retina images but could affect performance as even the newer devices will use some none-retina images but the main performance hit was to iPhone 3GS and below but as iOS 7 will not run on iPhone 3GS or below it isn't a requirement you'll just have to handle the performance issues. No Apple do not keep hold of older versions of your app on the app store, if you drop support for it then it is gone.
To answer the second part of your question YES, Apple does indeed store older versions for download.
For my app Parkable I created one for iOS5/6 then when 7 came about I specifically targeted it and dropped support for older iOS builds, now if you're not on 7+ you can still download the old version (instead of the old error telling the user to update their OS). This happens automatically as I recall, simply change your deployment target in both your project and target under the info tab.
Feel free to test if you have a pre-7 device (iPhone or iPad) and 7+ device https://itunes.apple.com/us/app/parkable/id577954935?mt=8&uo=4

Resources