我们通过一个企业账户,使用itms-services:// URL来分发应用。这一直都很正常,但在我们的iPad上安装了iOS 7.1测试版后,它就拒绝安装了。相反,我们只是得到一个通用的不能连接到example.com的消息,当下载应用程序出现任何问题时,iOS会毫无帮助地显示这个消息。

我无法在SO,谷歌或7.1发布说明中找到任何东西来建议可能导致问题的原因。


当前回答

我也遇到了同样的麻烦,照上面说的做了。

Put the plist in dropbox. Over the download file button, below an image of the document with mouse right button select the copy link action. This link is already something like https://dl.dropboxusercontent.com/s/xyz123/app.plist?stuff=stuff with many params. Remove the parameters (kept only address between https and .plist) Browse for url encode online, selected one of those links, copy, paste, execute, then the resulting text copied and pasted into the html where I have the itms-services link. By the way I have this html in two different locations, one of those is where the ipa is located. Make sure the plist includes absolute references to the ipa file.

这两个页面都成功地在ios 7.1的iphone上安装了应用程序

但是,现在安装了ios 7.0x的iphone无法安装该应用程序。

我创建了一个新问题:升级后的adhoc应用部署在7.1之前的ios上无法工作

这两个问题紧密相关,也因缺乏官方参考而联系在一起。

其他回答

Apter尝试更改itms-services://?action=download-manifest&url=http://....itms-services: / / ? action = download-manifest&url = https://..。这也行不通。警报是无法连接到我的域。我发现也需要更新网页。

问题不在于主URL是HTTPS,而在于页面内链接中的一些HTML代码。您需要开发人员更新网页。我还注意到在你的登台域上没有有效的SSL证书,所以你需要安装一个或使用Dropbox,这里的链接可能对你有帮助

除了使用Dropbox进行企业推广,你还可以使用TestFlight进行企业签名应用的推广。

https://www.testflightapp.com/

对于托管和分发临时开发版本和企业版本来说,这是一个非常棒的服务。

一些好人通过使用Class 1 StartSSL证书和共享Apache配置来处理这个问题,该配置添加了证书支持(将与任何证书一起工作)和更改现有*中的链接的代码。Plist自动文件。太长了,不能复制,所以这里是链接: http://cases.azoft.com/how-to-fix-certificate-is-not-valid-error-on-ios-7/

这是真的,在iOS7.1下,所有OTA部署都将通过https进行。苹果没有记录这一点,真可耻。

对于那些正在寻找比依赖dropbox或必须支付现金获得证书更好的内部解决方案的人来说,如果你遵循提示#5中列出的步骤,你可以有一个解决方案:http://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/

它的要点是:

创建自己的CA颁发机构证书,可以安装在完全受信任的设备上(我通过简单地通过电子邮件安装它) 根据根证书创建key/cer对,并将其安装到服务器上 确保您的web服务器使用与CA颁发机构根证书匹配的密钥/密钥对 在这一点上,你应该能够像往常一样通过https安装你的应用程序 所有这些都可以在OSX上使用已经默认安装的openssl来完成

这与仅仅使用自签名证书不同,在这个解决方案中,您还充当自己的私有证书颁发机构。如果安装在Apple设备上的根证书未标记为受信任(绿色),则有问题。重做一遍。

这绝对有效。

更新:3/13/2014 -我提供了一个小的命令行实用程序,简化了整个过程。你可以在https://github.com/deckarep/EasyCert/releases上得到它

我也遇到了同样的问题,尽管我已经在使用SSL服务器,但简单地将链接更改为https是行不通的,因为有一个潜在的问题。

点击此处查看图片

突出显示的部分告诉我,我们应该提供信任证书的选项,但由于这是应用程序商店,因此在Safari中没有提供恢复建议。


我对现有的解决方案并不满意,因为:

有些选项需要依赖第三方(Dropbox) 我们不愿意为SSL证书付费 免费SSL证书只是一个临时解决方案。

我最终找到了一个解决方案,创建一个自签名根证书颁发机构,并使用它生成我们的服务器的SSL证书。

我使用了钥匙链访问和OSX服务器,但每个步骤都有其他有效的解决方案


创建证书颁发机构

据我所知,证书颁发机构被用来验证证书的真实性。由于我们将要自己创建一个证书,所以它并不完全安全,但这意味着您可以信任来自给定权威机构的所有证书。默认情况下,浏览器中通常包含这些授权机构的列表,因为这些授权机构实际上是受信任的。(GeoTrust Global CA, Verisign等)

打开Keychain并使用证书助手创建一个权威

填写您的证书颁发机构信息

我不知道是否有必要,但我让权威得到了信任。


生成证书签名请求

在本例中,证书签名请求由服务器管理员生成。简单地说,它是一个文件,询问“我可以为我的网站获得一个包含此信息的证书吗?”

接下来,你必须创建你的证书签名请求(我使用OSX服务器的证书管理器

填写您的证书信息(必须只包含ascii字符!谢谢@Jasper Blues)

将生成的CSR保存在某个地方


创建证书

再次作为证书颁发机构,由您来决定向您发送CSR的人是否真实,他们是否假装是其他人。真正的权威有他们自己的方法来做这件事,但因为你希望非常确定你是你,你的验证应该非常确定:)

返回“Keychain Access”,如图所示打开“Create A Certificate..”选项

将保存的CSR拖到指定的框中

点击“让我重写此请求的默认值”按钮

我想延长有效期。

由于某种原因,我们不得不重新填写一些信息

在此屏幕上单击continue

确保你点击SSL服务器认证,这让我有些头疼。

您可以单击继续查看其余选项。 邮件应用程序将打开,让您有机会发送证书。不要发电子邮件,右键单击并保存。


安装证书

现在我们需要设置服务器来使用我们刚刚为它的SSL通信创建的证书。

如果您使用的设备是服务器,则可能会发现证书已经安装。

如果没有,双击Pending证书,并将刚才从电子邮件中保存的PEM文件拖到指定的空间中。(或者,如果你没有保存PEM,你也可以从keychain中导出它。)

更新您的服务器以使用这个新证书。如果您发现新的证书不“粘”,并一直还原,请回到BOLD ITALIC CAPS中的位


安装设备

你需要安装应用程序的每个设备都需要有这个证书授权机构的副本,这样他们就知道他们可以信任来自该授权机构的SSL证书

返回到Keychain Access并将您的证书颁发机构导出为.cer

然后我把这个文件和我的OTA应用放在我的服务器上,用户可以点击这个链接下载权威证书。将证书直接通过电子邮件发送给用户也是一种有效的选择。

在您的设备上安装证书。


Test

确保你的plist链接是https 尝试安装一个应用程序!现在应该可以工作了。证书颁发机构是受信任的,SSL证书来自该颁发机构。