iOS 8上的企业应用更新分发


5 Answers

这对我来说效果更好,不需要触摸你的清单或其他技巧(适用于自动生成plist Xcode Server):

  1. 下载iExplorer( http://www.macroplant.com/iexplorer/
  2. 插入你的设备
  3. 删除“媒体>下载”中的所有文件
  4. 重新启动设备

这会重置设备缓存,现在您可以照常安装应用了。

Question

我有一个企业应用程序,我通过itms URL分发:

itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=https://$MY_PLIST_URL.plist

在iOS 7上,下载和更新都可以正常工作。 但是在iOS 8上,我收到错误消息:

LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.mycom.MyApp

在我的plist中,我有

<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>

并在我的iOS 8上的应用程序,我运行版本0.2.1




iOS 10 beta 1存在同样的问题。

12月31日19:01:32 iphone-6s itunesstored [98]:LoadExternalDownloadManifestOperation:忽略清单下载,已经有bundleID:com。***************。ios with phase:SSDownloadPhaseWaiting

我不明白的一件事是,日期是12月31日在XCode设备日志中,但是,设备具有正确的日期和时间配置。

更新:来自HockeyApp的伙计们在WWDC期间向Apple通报了这个问题,并且修复应该会在下一个种子中出现。




接受的解决方案不再适用于iOS9。

我的理解是,苹果已经通过阻止adhoc二进制文件替换从App Store下载的股票应用程序或应用程序来关闭严重的iOS安全漏洞。 有关背景信息,请参阅此文章(CVE-2015-3722 / 3725和CVE-2015-3725):

https://www.fireeye.com/blog/threat-research/2015/06/three_new_masqueatt.html

考虑到安全隐患,我不希望这种行为在未来的IOS版本中发生变化。 备选方案似乎是:

  • 在安装adhoc之前删除App Store版本
  • 通过更改应用程序和分配plist中的包ID来将adhoc分配为“新”应用程序
  • 使用TestFlight



看看这个答案和这个答案

您可以解决这个问题,而无需任何攻击,对于iOS8,您必须在清单.plist文件的assets密钥中包含display-imagefull-size-image密钥。 当为企业和附加部署保存归档文件时,它们在Xcode 5中可用,但不是必需的。

我使用install-manifet.plist文件的模板在github上创建了一个要点。




确保你有一个完整的互联网接入。

我正面临与OTA安装和IOS8相同的问题。 因为我在公司代理之后,上述解决方案在我设置手动代理设置(在IOS7中不需要)来解决该问题之前不起作用。




通过更改plist中的包标识符来解决问题。

通常,点击itms链接后,它会显示出显示图标安装的桌面。 但是,对于我的iOS 8.0设备,在点击itms链接后,它不会更改为安装页面,但安装已经开始工作。




Related