I have an enterprise app that I'm distributing via an itms
URL:
我有一个企业应用程序,我通过itms URL分发:
itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=https://$MY_PLIST_URL.plist
On iOS 7, both downloads and updates work fine. On iOS 8, however, I get the error:
在ios7上,下载和更新都没问题。然而,在ios8上,我犯了一个错误:
LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.mycom.MyApp
In my plist, I have
在我的plist里,我有。
bundle-identifier
com.mycom.MyApp
bundle-version
0.2.2
and on my app on iOS 8, I'm running version 0.2.1
在ios8上的应用程序上,我运行的是0.2.1版本。
90
I've also encountered this problem with our app distribution. We were able to fix this issue by 'faking' the bundle identifier inside the .plist using for download distribution, keeping our ipa bundle identifier the same.
我也遇到过这个问题,我们的应用程序发行版。我们可以通过在.plist中“faking”绑定包标识符来解决这个问题,使用下载分发版,保持我们的ipa bundle标识符相同。
For example, in your plist:
例如,在您的plist:
bundle-identifier
com.mycom.MyApp
bundle-version
0.2.2
change com.mycom.MyApp to com.mycom.MyApp.ios8fix
改变com.mycom。MyApp,com.mycom.MyApp.ios8fix
The app will be installed using a new app icon, which will disappear after install.
该应用程序将使用一个新的应用程序图标来安装,该图标将在安装后消失。
If you already have an install of the app, you will even see a new app icon during install. After the installation this icon disappears, but your already existing version of the app will be updated. With a clean install the installation icon will disappear and the installed application icon will appear in place.
如果你已经安装了这个应用程序,你甚至会在安装过程中看到一个新的应用程序图标。安装之后,这个图标就会消失,但是你已经存在的应用程序版本将会被更新。安装一个干净的安装图标将会消失,安装的应用程序图标将会出现。
It looks like iOS 8 is caching the bundle identifiers and compares the requested installs with these cached ones. Most of the times you'll only see an popup asking for install, but nothing happens.
看起来ios8正在缓存包标识符,并将所请求的安装与这些缓存的标识进行比较。大多数情况下,您只会看到一个弹出式请求安装,但是什么也没有发生。
As Sean already noticed, this appears with xCode 6 GM and the official iOS 8 version. Devices which never installed your application before will have no problems to install the app.
正如Sean已经注意到的,xCode 6通用和官方的iOS 8版本也出现了。以前从未安装过应用程序的设备,安装应用程序时不会有问题。
24
This worked better for me, no need to touch your manifest or other trickery (perfect for Xcode Server where the plist
is auto-generated):
这对我来说更好,不需要去碰你的清单或其他欺骗(对于Xcode服务器,plist是自动生成的):
This resets the device caches, now you can install your app as usual.
这重置了设备缓存,现在你可以像往常一样安装你的应用。
16
I am having the same problem. I reproduced it by:
我也有同样的问题。我复制了:
1) Having my application installed while upgrading from iOS 7 to iOS 8 GM
1)从ios7升级到ios8 GM时安装了我的应用程序。
2) Removing it in iOS 8
2)在ios8中删除它。
3) Trying to install it via itms-services: with the same bundle name
试图通过itms服务安装它:使用相同的包名。
When I tried to change the bundle-identifier in the server plist (not in the applications Info.plist), it worked (application was downloaded an no "shadow" icon remained). But it looks like an apple bug.
当我尝试在服务器plist(不在应用程序Info.plist中)更改bundle标识符时,它工作了(应用程序下载了一个没有“阴影”的图标)。但它看起来像一只苹果虫。
11
The accepted solution no longer works on iOS9.
已接受的解决方案不再适用于iOS9。
My understanding is that Apple has closed a serious iOS security hole by preventing adhoc binaries from replacing stock apps or apps downloaded from the App Store. See this article for background (CVE-2015-3722/3725 and CVE-2015-3725):
我的理解是,苹果公司已经关闭了一个严重的iOS安全漏洞,阻止了临时的二进制文件取代从应用商店下载的股票应用程序或应用程序。查看本文的背景(CVE-2015-3722/3725和CVE-2015-3725):
https://www.fireeye.com/blog/threat-research/2015/06/three_new_masqueatt.html
https://www.fireeye.com/blog/threat-research/2015/06/three_new_masqueatt.html
Taken the security implications, I wouldn't expect this behaviour to change in future IOS versions. Alternative options seem to be:
考虑到安全问题,我不希望这种行为在未来的IOS版本中有所改变。备选方案似乎是:
9
What Gil said seems to be correct, but more specifically, I found that I also needed to increment the bundle-version string in the server.plist:
Gil说的似乎是正确的,但更具体地说,我发现我还需要在server.plist中增加bundle-version字符串:
bundle-version
3.2.2
This at least allows you to accomplish an OTA install.
这至少允许您完成OTA安装。
(Sorry... Would've added to comments, but I'm too much a n00b.)
(对不起…会增加评论,但我太过了。
9
Take a look over this answer and this answer.
看一下这个答案和这个答案。
You can fix this issue without any hacks, 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 were not required.
您可以在不使用任何技巧的情况下修复这个问题,因为iOS8必须包含manifest .plist文件、显示图像和全尺寸图像密钥的资产密钥。他们在Xcode 5中保存了一个用于企业和临时部署的归档文件,但不是必需的。
I have created a gist on github with the template for the install-manifet.plist file.
我已经在github上创建了一个关于install- et的模板。plist文件。
3
This a bug first found in iOS8 Beta5. And it was still not fixed by Apple in GM seed and official iOS8.0 version. More discussons could be found here
这是在iOS8 Beta5中发现的。而且它还没有被苹果公司在转基因种子和官方的iOS8.0版本中固定。更多的讨论可以在这里找到。
The current workaround being tested by myself:
目前的工作正在我自己测试:
3
Problem solved by changing the bundle identifier in plist.
通过更改plist中的bundle标识符来解决问题。
Normally, after tapping the itms link, it will shows the desktop which shows the icon installation. However, for my iOS 8.0 device, after tapping the itms link, it will not change to the installation page but installation is already working behind.
通常,在点击itms链接后,它将显示显示图标安装的桌面。但是,对于我的ios8.0设备,在点击itms链接后,它不会更改到安装页面,但是安装已经在后面工作了。
2
This is extreme but if you can't change your bundle identifier, which I couldn't, restoring your iPhone through iTunes to the latest iOS 8 and restoring from a backup fixes the problem.
这是极端的,但是如果你不能改变bundle的标识符,我不能,你可以通过iTunes将你的iPhone恢复到最新的ios8,然后从备份中恢复。
1
Same problem exists on iOS 10 beta 1.
iOS 10测试版也存在同样的问题。
Dec 31 19:01:32 iphone-6s itunesstored[98] : LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.***************.ios with phase: SSDownloadPhaseWaiting
iphone-6s itunesstore [98]: loadexternaldownloadmanifest操作:忽略manifest下载,已经有bundleID: com.*************** ************ios阶段:SSDownloadPhaseWaiting
One thing that I do not understand here is that the date is December 31st in the XCode device log, however, device has correct date and time configured.
我不明白的一点是,在XCode设备日志中,日期是12月31日,但是,设备有正确的日期和时间配置。
Update: Guys from HockeyApp notified Apple about this problem during WWDC and fix should come in the next seed.
更新:来自HockeyApp的人在WWDC上通知了苹果这个问题,修复应该在下一个种子中出现。
0
If you build your iOS apps with a build script and you were previously using PackageApplication with the --sign flag then that may be causing problems. The --sign flag doesn't work any longer when building on 10.10 and removing it got all of our iOS apps installing again.
如果您使用构建脚本构建您的iOS应用程序,并且您以前使用的是PackageApplication,那么可能会导致问题。在10.10的时候,标志标志不再起作用,并且移除所有的iOS应用程序。
see: https://devforums.apple.com/thread/251624?tstart=0
参见:https://devforums.apple.com/thread/251624?tstart=0
0
Make sure you have a full internet access.
确保你有一个完整的互联网接入。
I was facing the same problem with OTA installation and IOS8. Because i'm behind a corporate proxy, the solutions above didn't work until I set manual proxy settings (not needed in IOS7) to solve that problem.
我在OTA安装和IOS8上遇到了同样的问题。因为我是一个企业代理,所以上面的解决方案直到我设置了手动代理设置(IOS7中不需要)才能解决这个问题。
0
I have just encountered this issue on a device running 8.1, upgrading the device to 8.3 has resolved the issue. So either the bug is no longer present in 8.3.... or the act of upgrading cleared the cached data anyway.
我刚刚在一个运行8.1的设备上遇到这个问题,将设备升级到8.3已经解决了这个问题。所以要么错误不再出现在8.3 ....或者更新缓存数据的行为。