【问题标题】:ios - Unable to download application but app installed correctlyios - 无法下载应用程序,但应用程序安装正确
【发布时间】:2014-03-18 09:32:35
【问题描述】:

我从 HTTP 服务器分发我的 iOS 应用程序作为企业分发。当用户直接从网络浏览器下载应用程序时,应用程序安装正确,不会出现错误。

另一方面,应用程序有一个自动更新的过程。当用户启动应用程序时,如果服务器上有新版本的应用程序,则会显示开始下载的警报。如果用户接受,则开始下载。在安装过程中,显示​​以下消息:

“无法下载应用程序”

但应用程序已正确安装。我使用此代码下载应用程序:

NSURL *url = [NSURL URLWithString:serverUrlDownload];
[[UIApplication sharedApplication] openURL:url];

当用户使用 iPhone 5s 时会发生这种情况。

在日志中显示以下错误:

<Warning>: Download url: itms-services://?action=download-manifest&url=http://server_update/ios/IOS_WF.plist
<Warning>: LaunchServices: installing placeholder for app10.IOS-WF
<Notice>: 0x1005a4000 handle_install_for_ls: Install of "/var/mobile/Library/Caches/com.apple.itunesstored/AppPlaceholders/-6609911948116439539.app" requested by itunesstored
<Notice>: 0x1005a4000 MobileInstallationInstall_Server: Installing app app10.IOS-WF
<Notice>: 0x1005a4000 install_application: Installing parallel placeholder
<Notice>: 0x1005a4000 MobileInstallationInstall_Server: Staging: 0.00s; Waiting: 0.00s; Installation: 0.12s; LS Sync: 0.00s; Overall: 0.12s
<Warning>: No se ha obtenido ningún flujo
<Warning>: LaunchServices: Creating installProgressForApplication:LSApplicationProxy: app10.IOS-WF (Placeholder) withPhase:0
<Warning>: LaunchServices: installation failed for app app10.IOS-WF
<Warning>: LaunchServices: installPhaseFinishedForProgress: app10.IOS-WF.Loading - <NSProgress: phase=Loading; state=Failed; fractionCompleted=1.000000> called, removing progress from cache

重现 iPhone 5s 中的问题。

我无法在 iPhone 4s 中重现错误。

有什么想法吗?可能是服务器配置的问题?

【问题讨论】:

  • 同样未回答的问题here

标签: ios iphone objective-c xcode ipad


【解决方案1】:

如果您还没有这样做,您可能想尝试通过 https 而不是 http 提供应用程序。

从 iOS 7.1 开始,至少清单文件需要 https,尽管有报道称 http 仍然可以工作。

需要 https 的整个故事让大多数开发人员感到惊讶,并且似乎同时出现了问题。我可以很好地想象由于不同的操作系统构建,不同设备上的流程实现存在差异,尤其是现在有 32 位和 64 位架构。

这是一个疯狂的猜测,但尝试一下不会有什么坏处。如果您手头没有支持 SSL 的服务器,您可能希望使用 Dropbox 作为解决方法,正如 here 所解释的那样。

【讨论】:

  • 感谢您的回复。我已经使用我生成的 ssl 证书对 https 服务器进行了测试,结果是相同的,显示有错误的警报,但安装了应用程序。另一方面,如果我使用 http 或 https 保管箱服务器分发应用程序,它会令人满意地下载和安装,并且不会显示任何错误。问题是我不能使用 Dropbox 服务器来分发生产应用程序。
  • 在自签名证书的情况下,您需要通过 iPhone 配置器使其成为受信任的配置文件。请参阅此答案的 cmets,尤其是 Niralp 和 Monobono 的 cmets:stackoverflow.com/a/20276908/416600
  • 是的,使用分发服务器 SSL 的自签名证书,我通过 iPhone 实用程序配置创建了一个受信任的配置文件并将其安装在设备上,但问题仍然存在。自签名证书不是来自 AC 认可的,可能是问题吗?
  • 我想是这样 - 因为它确实通过保管箱工作,它提供了一个没有间隙的信任链,我认为可以安全地假设缺少它会导致您的服务器/自签名证书出现问题.不过,您可以创建自己的私有 CA,因为您的目标是内部使用(在 iOS 7.1 之前,安全性显然对您来说不是问题),这应该足够了。 Monobono,我提到过他的评论,显然以这种方式解决了这个问题......
  • 我已经做了 Monobeno 所说的,但我相信我的问题是其他问题(可能与自我证书 CA 有关),因为应用程序已下载并安装在设备上,但显示警告说“无法下载应用程序”。这并不总是发生,如果我在 iPhone 4s 上运行应用程序未显示警报错误。在 iPhone 5s 上发生错误。 iOS版本相同,7.0.6。
猜你喜欢
  • 2016-01-29
  • 1970-01-01
  • 2012-05-10
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 2012-10-27
  • 2021-08-07
相关资源
最近更新 更多