不显示 Ad-Hoc 图标
Posted
技术标签:
【中文标题】不显示 Ad-Hoc 图标【英文标题】:Ad-Hoc icon does not display 【发布时间】:2016-10-05 17:55:55 【问题描述】:在为 beta 测试人员分发我的应用程序时遇到了一个奇怪的问题。这是关于下载过程中的应用程序图标。
当用户通过指向应用清单的链接并点击“安装”时,可能会出现 2 个问题:
-
在应用准备好启动之前,主屏幕上的应用图标根本不会出现。
应用程序图标占位符出现,而不是清单中由 URL 托管的我的应用程序图标 (please see screenshot)。应用完全安装后,捆绑包中的应用图标就会出现。
问题转载于:
iPhone 5s,ios 9.2.1 iPhone 5s,iOS 10.0.2 iPhone 4s,iOS 9.3.5在装有 iOS 9.2 的 iPad Air (A1474) 上没有问题。
这是我的清单:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://s3-eu-west-1.amazonaws.com/vandco/JustAMap/JustAMap.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<false/>
<key>url</key>
<string>https://s3-eu-west-1.amazonaws.com/vandco/JustAMap/globe-adhoc-1024p.png</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<false/>
<key>url</key>
<string>https://s3-eu-west-1.amazonaws.com/vandco/JustAMap/globe-adhoc-1024p.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>ru.vandco.JustAMap</string>
<key>bundle-version</key>
<string>0.9</string>
<key>kind</key>
<string>software</string>
<key>subtitle</key>
<string>V&Co Ltd.</string>
<key>title</key>
<string>Просто.Карта</string>
</dict>
</dict>
</array>
</dict>
</plist>
应用程序图标为 1024x1024(PNG,1.1 MiB)。我尝试使用Apple documentation 中所述的 57x57,但更多测试人员报告了此问题,因此我决定提高分辨率。
这是指向我的清单的链接:itms-services://?action=download-manifest&url=https://vandco.s3.amazonaws.com/JustAMap/JustAMap.plist
该应用由 Ad-Hoc Distribution 的配置文件进行代码签名。它安装并运行良好,问题只是无线下载期间的应用程序图标。
我想知道这是我的错还是 Apple 的错误,我该如何修复或解决它?
【问题讨论】:
安装过程中显示错误图像的唯一问题是什么? 是的,它只是在下载和安装过程中。当应用程序安装包中的图标时,它应该会出现。 我现在在 iPad 上遇到了同样的问题,只是不知道如何处理它。太令人沮丧了……就我而言,这绝对不是图像大小。另外,我正在使用 CloudFront 分发下载图像,因此响应时间肯定低于 1 秒 【参考方案1】:iOS 9.2 似乎会等待短暂的超时以下载 Ad-Hoc 应用程序图标。如果图标足够大,或者互联网连接速度很慢,或者托管图标的服务器有明显的 ping 延迟,iOS 会中止下载图标并显示占位符。我用一个简单的 php 脚本在我自己的服务器上测量了超时。虽然我不知道确切的 ping 延迟,但我认为它是合理的短。所以我可以说超时应该是大约。 1 秒。
因此,如果服务器在 1 秒内未能响应图像,iOS 9.2 将中止下载图标。
无论如何它不会在 iOS 9.3.5 及更高版本中重现:iOS 会在一段时间内显示占位符,但仍在等待服务器响应,如果在下载应用程序之前服务器以图标响应,则占位符变为下载的临时图标。
【讨论】:
以上是关于不显示 Ad-Hoc 图标的主要内容,如果未能解决你的问题,请参考以下文章