Phonegap app submission to AppStore - ITMS-9000 error - iphone

On attempting to submit my Phonegap app to the Appstore I get the following error
ERROR ITMS-9000: "Your binary is not optimized for iPhone 5 - New iPhone apps and app updates submitted targeting iOS 6 and above must support the 4-inch display on iPhone 5 and must include a launch image with the -568h size modifier immediately following the <basename> portion of the launch image's filename. Launch images must be PNG files and located at the top-level of your bundle, or provided within each .lproj folder if you localize your launch images.
I have the following splash images specified in my Phonegap config.xml
<gap:splash src="images/splash320x480.png" width="320" height="480" />
<gap:splash src="images/splash640x960.png" width="640" height="960" />
<gap:splash src="images/splash1024x768.png" width="1024" height="768" />
<gap:splash src="images/splash768x1024.png" width="768" height="1024" />
<gap:splash src="images/splash1024x748.png" width="1024" height="748" />
<gap:splash src="images/splash1024x748.png" width="1024" height="748" />
<gap:splash src="images/splash1496x2048.png" width="1496" height="2048" />
<gap:splash src="images/splash768x1004.png" width="768" height="1004" />
<gap:splash src="images/splash1536x2008.png" width="1536" height="2008" />p
<gap:splash src="images/splash2048x1536.png" width="2048" height="1536" />
<gap:splash src="images/splash1536x2048.png" width="1536" height="2048" />
<gap:splash src="images/splash_retina_640x1136.png" width="640" height="1136" />
<gap:splash src="images/splash_retina_640x960.png" width="640" height="960" />
<gap:splash src="images/splash640x1136.png" width="640" height="1136" />
Can anyone point me in the direction of what I'm doing wrong?

you have to add proper splash screen images for supporting 4.0 inch devices.
Naming convention for splash screen.
Default.png for non-retina 3.5" devices.
Default#2x.png for retina 3.5" devices.
Default-568h#2x.png for retina 4.0" devices.

Default-568h#2x.png (640x1136px) – "iPhone Portrait iOS5,6 – Retina 4" and "iPhone Portrait iOS7,8 – Retina 4"
You can find any other splash screen sizes here:
http://www.ios-developer.net/iphone-ipad-programmer/icons_and_graphics/default-image

Related

Why is Autoplay video not working on iphone

Hi,
I have this video embedded onto my index
<video style="width:100%;" muted="" autoplay="">
<source src="video.webm" type="video/webm">
<source src="video.mov" type="video/mp4" codecs="hvc1">
</video>
it starts playing automatically on desktops and android phones, even ipads but not iphone for some reason. Why is that? Is the iphone browser blocking it or something?
Thank you.

Apple Touch Icon (Homescreen icon) for iPhone 7?

I would like to provide a custum Homescreen Icon for iPhone devices. This is the code I have after my -Tag:
<link rel="apple-touch-icon" href="../img/apple-touch-icon-120.png" sizes="120x120" />
<link rel="apple-touch-icon" href="../img/apple-touch-icon-144.png" sizes="144x144" />
<link rel="apple-touch-icon" href="../img/apple-touch-icon-180.png" sizes="180x180" />
This is working fine on 6s but it not working on iPhone 7. What did I do wrong?
Apparently there are no differences between iPhone 6 and 7 regarding the Touch icon. And if there were, the iPhone 7 would probably support the legacy icons.
The error might be due to a caching issue of some kind. If you already visited the site with your iPhone 7 before the Touch icon was available, maybe your phone is simply too "lazy" to notice it immediately. It would be useful to retry with your iPhone 7, or to try with another iPhone 7.
Another useful check would be to run RFG's checker against your site. It can spot several issues, like broken links or ill-formed images. Full disclosure: I'm the author of this service.

Apple touch icon (iphone retina) not applied - something wrong?

I have 4 icons for my site:
iPhone
iPhone Retina
iPad
iPad Retina
They're all working perfectly apart from iPhone retina (144x144), which is just showing the usual low-rez iphone icon (57x57). Below is my code, please tell me what I'm doing wrong.. All paths/images/sizes are correct.
Thank you.
<link rel="apple-touch-icon-precomposed" href="app/img/touch-icon-iphone.png" />
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="app/img/touch-icon-ipad.png" />
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="app/img/touch-icon-iphone-retina.png" />
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="app/img/touch-icon-ipad-retina.png" />
Did you rename 114x114 images picture name with #2x ? imageName#2x etc.
set iPhone retina Image Name touch-icon-iphone#2x.png . that is 144*144.

Which iPhone apps will run on the iPad 2 in scaled mode?

I don't own an iPad 2, so I can't test this. Say I've developed an app that uses retina images only, as I made it compatible to iPhone 4 upwards only. Will they run on the iPad 2 in scaled mode?. Technically, the resolution of the iPad 2 non-retina display is larger than the iPhone 4 retina display. But I'm not sure how it will display. Has someone tested this?
The app will run in letter box, scaled size.
It will look the same as a non-retina iPhone app running on the iPad i.e. looking like an iPhone in the middle of the screen. The 'retina' pixels are downsampled to the lower resolution, and if you hit the '2x' button, the downsampled pixels are just doubled in size to fit the screen, even though they could, in theory, map 1-1 with the iPad's pixels.
I am currently working on an HTML5 app and I have used CSS media queries to target different devices, here is a sample of my code:-
<!-- iPhone -->
<link rel="apple-touch-icon" media="screen
and (resolution: 163dpi)" href="~/content/images/iOS-57.png" />
<!-- iPad (portrait) --><!-- iPad (landscape) -->
<link rel="apple-touch-icon" sizes="72x72" href="~/content/images/iOS-72.png" />
<!-- iPad (Retina, portrait) --><!-- iPad (Retina, landscape) -->
<link rel="apple-touch-icon" sizes="144x144" href="~/content/images/iOS-144.png" />
<!-- iPhone (Retina) -->
<link rel="apple-touch-icon" sizes="114x114" href="~/content/images/iOS-114.png" />
<!-- iPhone -->
<link href="~/content/images/apple-touch-startup-image-320x460.png"
media="(device-width: 320px) and (device-height: 480px)
and (-webkit-device-pixel-ratio: 1)"
rel="apple-touch-startup-image">
<!-- iPhone (Retina) -->
<link href="~/content/images/apple-touch-startup-image-640x920.png"
media="(device-width: 320px) and (device-height: 480px)
and (-webkit-device-pixel-ratio: 2)"
rel="apple-touch-startup-image">
<!-- iPhone 5 -->
<link href="~/content/images/apple-touch-startup-image-640x1096.png"
media="(device-width: 320px) and (device-height: 568px)
and (-webkit-device-pixel-ratio: 2)"
rel="apple-touch-startup-image">
<!-- iPad (portrait) -->
<link href="~/content/images/apple-touch-startup-image-768x1004.png"
media="(device-width: 768px) and (device-height: 1024px)
and (orientation: portrait)
and (-webkit-device-pixel-ratio: 1)"
rel="apple-touch-startup-image">
<!-- iPad (landscape) -->
<link href="~/content/images/apple-touch-startup-image-748x1024.png"
media="(device-width: 768px) and (device-height: 1024px)
and (orientation: landscape)
and (-webkit-device-pixel-ratio: 1)"
rel="apple-touch-startup-image">
<!-- iPad (Retina, portrait) -->
<link href="~/content/images/apple-touch-startup-image-1536x2008.png"
media="(device-width: 768px) and (device-height: 1024px)
and (orientation: portrait)
and (-webkit-device-pixel-ratio: 2)"
rel="apple-touch-startup-image">
<!-- iPad (Retina, landscape) -->
<link href="~/content/images/apple-touch-startup-image-1496x2048.png"
media="(device-width: 768px) and (device-height: 1024px)
and (orientation: landscape)
and (-webkit-device-pixel-ratio: 2)"
rel="apple-touch-startup-image">
If you want your app to look as ipad application you need to add universal property in target configuration. If target is only Iphone it will be shown always in small window.

What size should apple-touch-icon.png be for iPad and iPhone?

Are Apple touch icons bigger than 60x60 supported, and if so, what dimensions should I use for the iPad and iPhone?
Updated list December 2019, iOS13
One icon for iOS 180x180 px and one for android 192x192 px (declared in site.webmanifest).
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
#### site.webmanifest
{
"name": "",
"short_name": "",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
}
],
"display": "standalone"
}
Deprecated list October 2017, iOS11
List for iPhone and iPad with and without retina
<!-- iPhone(first generation or 2G), iPhone 3G, iPhone 3GS -->
<link rel="apple-touch-icon" sizes="57x57" href="touch-icon-iphone.png">
<!-- iPad and iPad mini #1x -->
<link rel="apple-touch-icon" sizes="76x76" href="touch-icon-ipad.png">
<!-- iPhone 4, iPhone 4s, iPhone 5, iPhone 5c, iPhone 5s, iPhone 6, iPhone 6s, iPhone 7, iPhone 7s, iPhone8 -->
<link rel="apple-touch-icon" sizes="120x120" href="touch-icon-iphone-retina.png">
<!-- iPad and iPad mini #2x -->
<link rel="apple-touch-icon" sizes="152x152" href="touch-icon-ipad-retina.png">
<!-- iPad Pro -->
<link rel="apple-touch-icon" sizes="167x167" href="touch-icon-ipad-pro.png">
<!-- iPhone X, iPhone 8 Plus, iPhone 7 Plus, iPhone 6s Plus, iPhone 6 Plus -->
<link rel="apple-touch-icon" sizes="180x180" href="touch-icon-iphone-6-plus.png">
<!-- Android Devices High Resolution -->
<link rel="icon" sizes="192x192" href="icon-hd.png">
<!-- Android Devices Normal Resolution -->
<link rel="icon" sizes="128x128" href="icon.png">
Update Oct 2017 iOS 11:
iOS 11 checked, iPhone X and iPhone 8 introduced
Update Nov 2016 iOS 10:
New iOS version iPhone 7 and iPhone 7plus introduced, they have the same display resolution, dpi, etc as iPhone 6s and iPhone 7plus, until now no changes found respecting the update 2015
Update Mid 2016 Android:
Add Android Devices to the list as the apple-touch links are marked as deprecated by Google and will be not supported anytime for their devices
<!-- Android Devices High Resolution -->
<link rel="icon" sizes="192x192" href="icon-hd.png">
<!-- Android Devices High Resolution -->
<link rel="icon" sizes="128x128" href="icon.png">
Update 2015 iOS 9:
For iOS 9 and iPad pro
<link rel="apple-touch-icon" sizes="167x167" href="touch-icon-ipad-pro.png">
The new iPhones (6s and 6s Plus) are using the same sizes as the iPhone(6 and 6 Plus), the new iPad pro uses an image of size 167x167 px, the other resolutions are still the same.
Update 2014 iOS 8:
For iOS 8 and iPhone 6 plus
<link rel="apple-touch-icon" sizes="180x180" href="touch-icon-iphone-6-plus.png">
Iphone 6 uses the same 120 x 120 px image as iphone 4 and 5 the rest is the same as for iOS 7
Update 2013 iOS7:
For iOS 7 the recommended resolutions changed:
for iPhone Retina from 114 x 114 px to 120 x 120 px
for iPad Retina from 144 x 144 px to 152 x 152 px
The other resolution are still the same
57 x 57 px default
76 x 76 px for iPads without retina
Source:
https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/app-icon/
Use these sizes 57x57, 72x72, 114x114, 144x144 then do this in the head of your document:
<link rel="apple-touch-icon" href="apple-touch-icon-iphone.png" />
<link rel="apple-touch-icon" sizes="72x72" href="apple-touch-icon-ipad.png" />
<link rel="apple-touch-icon" sizes="114x114" href="apple-touch-icon-iphone4.png" />
   
This will look good on all apple devices. ;)
With the iPad (3rd generation) there are now four icon sizes 57x57, 72x72, 114x114, 144x144.
Because retina icons are exactly double the size of the standard icons we really only need to make 2 icons: 114 x 114 and 144 x 144. By setting the retina sized icon to the corresponding standard icon iOS will scale them accordingly.
<!-- Standard iPhone -->
<link rel="apple-touch-icon" sizes="57x57" href="touch-icon-iphone-114.png" />
<!-- Retina iPhone -->
<link rel="apple-touch-icon" sizes="114x114" href="touch-icon-iphone-114.png" />
<!-- Standard iPad -->
<link rel="apple-touch-icon" sizes="72x72" href="touch-icon-ipad-144.png" />
<!-- Retina iPad -->
<link rel="apple-touch-icon" sizes="144x144" href="touch-icon-ipad-144.png" />
The icon on Apple's site is 152x152 pixels.
http://www.apple.com/apple-touch-icon.png
Hope that answers your question.
TL;DR: use one PNG icon at 180 x 180 px # 150 ppi and then link to it like this:
<link rel="apple-touch-icon" href="path/to/apple-touch-icon.png">
Details on the Approach
As of 2020-04, the canonical response from Apple is reflected in their documentation on iOS.
Officially, the spec says:
iPhone 180px × 180px (60pt × 60pt #3x)
iPhone 120px × 120px (60pt × 60pt #2x)
iPad Pro 167px × 167px (83.5pt × 83.5pt #2x)
iPad, iPad mini 152px × 152px (76pt × 76pt #2x)
In reality, these sizing differences are tiny, so the performance savings will really only matter on very high traffic sites.
For lower traffic sites, I typically use one PNG icon at 180 x 180 px # 150 ppi and get very good results on all devices, even the plus sized ones.
I have been developing and designing iOS apps for a while and This is the best iOS design cheat sheet out there!
have fun :)!
Update:
For iOS 8+, and the new devices (iPhone 6, 6 Plus, iPad Air) see this updated link.
Meta update:
Iphone 6s/6s Plus have the same resolutions as iPhone 6/6 Plus respectively
This is an image from the new version of the article:
The relevant documentation on Apple's site, Specifying a Webpage Icon for Web Clip.
There is no need to put anything in the head of your document. If no icons are specified using a link element, the website root directory is searched for icons with the apple-touch-icon or apple-touch-icon-precomposed prefix.
For example, if the appropriate icon size for the device is 57 x 57, the system searches for filenames in the following order:
apple-touch-icon-57x57-precomposed.png
apple-touch-icon-57x57.png
apple-touch-icon-precomposed.png
apple-touch-icon.png
Yes. If the size does not match, the system will rescale it. But it's better to make 2 versions of the icons.
iPad — 72x72.
iPhone (≥4) — 114x114.
iPhone ≤3GS — 57x57 — If possible.
You could differentiate iPad and iPhone by the user agent on your server. If you don't want to write script on server, you could also change the icon with Javascript by
<link ref="apple-touch-icon" href="iPhone_version.png" />
...
if (... iPad test ...) {
$('link[rel="apple-touch-icon"]').href = 'iPad_version.png'; // assuming jQuery
}
This works because the icon is queried only when you add the web clip.
(There's no public way to differentiate iPhone ≥4 from iPhone ≤3GS in Javascript yet.)
Yes, bigger than 60x60 are supported. For simplicity, create icons of these 4 sizes:
1) 60x60 <= default
2) 76x76
3) 120x120
4) 152x152
Now, it's preferable to add them as links in your HTML as:
<link rel="apple-touch-icon" href="touch-icon-iphone.png">
<link rel="apple-touch-icon" sizes="76x76" href="touch-icon-ipad.png">
<link rel="apple-touch-icon" sizes="120x120" href="touch-icon-iphone-retina.png">
<link rel="apple-touch-icon" sizes="152x152" href="touch-icon-ipad-retina.png">
You can choose to not declare the 4 links above but just declare a single link, in which case give the highest size of 152x152 or even a size higher than that, say 196x196. It will always trim down the size for re-purposing. Ensure you mention the size.
You can also choose not to declare even a single link. Apple mentions that in this scenario, it will lookup the server root first for the size immediately higher that the size it wants (naming format: apple-touch-icon-<size>.png), and if that's not found then it will next look for the default file: apple-touch-icon.png. It's preferable that you define the link(s) as that will minimize the browser querying your server.
Icon necessities:
- use PNG, avoid interlaced
- use 24-bit PNG
- not necessary to use web-safe colors
In versions older than iOS 7, if you don't want it to add effects to your icons, then just add the suffix -precomposed.png to the file name. (iOS 7 doesn't add effects even without it).
I think this question is about web icons. I've tried giving an icon at 512x512, and on the iPhone 4 simulator it looks great (in the preview) however, when added to the home-screen it's badly pixelated.
On the good side, if you use a larger icon on the iPad (still with my 512x512 test) it does seem to come out in better quality on the iPad. Hopefully the iPhone 4 rendering is a bug.
I've opened a bug about this on radar.
EDIT:
I'm currently using a 114x114 icon in hopes that it'll look good on the iPhone 4 when it is released. If the iPhone 4 still has a bug when it comes out, I'm going to optimize the icon for the iPad (crisp and no resize at 72x72), and then let it scale down for old iPhones.
For iPhone and iPod touch, create icons that measure:
57 X 57 pixels
114 X 114 pixels (high resolution #2X)
For iPad, create an icon that measures:
72 x 72 pixels
144 X 144 pixels (high resolution #2X)