ios 使用 itms-services URL 的 iOS8 应用程序无线 (OTA) 安装失败
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/25923099/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Over the air (OTA) installation fails for iOS8 app using itms-services URL
提问by MStudios
For all prior versions of iOS, I've used the itms-services:// URL to install test iOS apps over the air (OTA). Now, all my devices with iOS8 fail when trying to install apps using this approach. Example URL:
对于所有以前的 iOS 版本,我使用 itms-services:// URL 以无线方式 (OTA) 安装测试 iOS 应用程序。现在,当我尝试使用这种方法安装应用程序时,我所有的 iOS8 设备都失败了。示例网址:
itms-services://?action=download-manifest&url=https://myWebsite/myApp/myApp.plist
Summary of problem:
问题总结:
- The Safari browser used to launch the install from a web page does not exit to the main screen showing the app installing as before in prior iOS versions
- The application never successfully installs. It installs, but is left as a greyed out icon, and the app will not launch.
- This problem does not occur on existing iOS7 devices, with identical URL.
- 用于从网页启动安装的 Safari 浏览器不会像以前的 iOS 版本一样退出到显示应用程序安装的主屏幕
- 该应用程序从未成功安装。它会安装,但会保留为灰色图标,并且该应用程序不会启动。
- 在现有的 iOS7 设备上不会出现此问题,具有相同的 URL。
采纳答案by Ivo Jansch
This seems to be a bug in the Beta5 and GM versions of iOS8.
这似乎是 iOS8 Beta5 和 GM 版本中的一个错误。
Over at Buildozer we've found a workaround: change the bundle identifier of the app in the manifest file. (More details: https://buildozer.io/ios8)
在 Buildozer,我们找到了一种解决方法:在清单文件中更改应用程序的包标识符。(更多详情:https: //buildozer.io/ios8)
A workaround that doesn't involve changing the manifest files is to restore the entire device from backup, however we feel the manifest 'hack' is less disruptive to users.
不涉及更改清单文件的解决方法是从备份中恢复整个设备,但我们认为清单“黑客”对用户的破坏性较小。
回答by alexcristea
This answerhelped me to fix the issue. It seems that for iOS8 you have to include in the assets
key of the manifest .plist
file the display-image
and full-size-image
keys. They were available in Xcode 5 when saving an archive for enterprise and add-hoc deployment, but not required.
这个答案帮助我解决了这个问题。似乎对于 iOS8,您必须assets
在清单.plist
文件的键中包含display-image
和full-size-image
键。在为企业和临时部署保存存档时,它们在 Xcode 5 中可用,但不是必需的。
I have created a gist on github with the template for the install-manifet.plistfile. The original post is available on http://www.informit.com/articles/article.aspx?p=1829415&seqNum=16.
我在 github 上用install-manifet.plist文件的模板创建了一个要点。原始帖子可在http://www.informit.com/articles/article.aspx?p=1829415&seqNum=16上找到。
回答by Elan Wang
As far as we know, this issue still not be solved in iOS 8.1, and we found that this solution will cause some side effect. After iOS 7.0.x devices use this method to install inHouse apps, although the app installed successful but the home screen left a black square, and can't be deleted.
据我们所知,这个问题在iOS 8.1中仍然没有解决,我们发现这个解决方案会带来一些副作用。iOS 7.0.x 设备使用此方法安装inHouse 应用后,虽然应用安装成功,但主屏幕留下黑色方块,无法删除。
You have to separate the install method between iOS8 and other iOS versions, which means you change the install method in iOS8, and keep the original install method in other version.
您必须将iOS8和其他iOS版本的安装方式分开,这意味着您在iOS8中更改了安装方式,而在其他版本中保持原来的安装方式。
回答by wasigh
I had the same problem. In my case the problem was fixed when:
我有同样的问题。在我的情况下,问题在以下情况下得到解决:
- the plist was served from HTTPS
- the IPA was served from HTTPS from the same domain as the plist
- full-size-image and display-image are present in the plist
- plist 是从 HTTPS 提供的
- IPA 是从与 plist 相同的域中的 HTTPS 提供的
- 全尺寸图像和显示图像存在于 plist 中
回答by gilm
We had the same problem. Our cause was that TestFlight had installed the bundle previously. It seems that TestFlight has (had) a profile installed, and only it could update the apps, even if they were uninstalled and deleted.
我们遇到了同样的问题。我们的原因是 TestFlight 之前安装了该包。似乎 TestFlight 已经(已)安装了一个配置文件,并且只有它可以更新应用程序,即使它们被卸载和删除。
A workaround was to add some suffix to the bundle identifier in the plist.
一种解决方法是在 plist 中的包标识符中添加一些后缀。
This of course caused another problem, that a secondary icon was showing until download was complete and the IPA was unpacked and matched with the app already on device.
这当然导致了另一个问题,即在下载完成并且 IPA 被解压并与设备上已有的应用程序匹配之前,会显示辅助图标。
BIG NOTICE: This is only a problem with iOS8, so you better check the user-agent during the download. It will be itunesd and will contain the exact iOS version.
重要提示:这只是 iOS8 的一个问题,所以你最好在下载过程中检查用户代理。它将是 itunesd 并将包含确切的 iOS 版本。