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

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


当前回答

Ingconti是对的。

Upload your app.plist to dropbox. Get shared link of app.plist, like https://www.dropbox.com/s/qgknrfngaxazm38/app.plist replace www.dropbox.com with dl.dropboxusercontent.com in the link, like https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist Remove any parameters on the dropbox shareable link such as "?dl=0t" (as per Carlos Aguirre Tradeco at Enterprise app deployment doesn't work on iOS 7.1 and my own experience). Create a download.html file with a link formatted as <a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist">INSTALL!!</a> Upload your download.html to dropbox Again, get a shared link of download.html, like https://www.dropbox.com/s/gnoctp7n9g0l3hx/download.html, and remove any parameters. Replace www.dropbox.com with dl.dropboxusercontent.com in the second link as well, like https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html

现在,在您的设备上访问https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html,您可以像以前一样安装应用程序。

多么美好的世界啊!

其他回答

Ingconti是对的。

Upload your app.plist to dropbox. Get shared link of app.plist, like https://www.dropbox.com/s/qgknrfngaxazm38/app.plist replace www.dropbox.com with dl.dropboxusercontent.com in the link, like https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist Remove any parameters on the dropbox shareable link such as "?dl=0t" (as per Carlos Aguirre Tradeco at Enterprise app deployment doesn't work on iOS 7.1 and my own experience). Create a download.html file with a link formatted as <a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist">INSTALL!!</a> Upload your download.html to dropbox Again, get a shared link of download.html, like https://www.dropbox.com/s/gnoctp7n9g0l3hx/download.html, and remove any parameters. Replace www.dropbox.com with dl.dropboxusercontent.com in the second link as well, like https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html

现在,在您的设备上访问https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html,您可以像以前一样安装应用程序。

多么美好的世界啊!

我可以确认它的工作,但你必须把html和plist的dropbox。 它也适用于非企业OTA,即你想要与你的开发团队共享应用程序。

我做了:

a)在我的网站上,我用这个链接做了一个页面:

.. href="https://dl.dropboxusercontent.com/u//(your DB id)/ipa.html

b)在DropBox上我写了另一个HTML页面:

. .https://dl.dropboxusercontent.com/u/(your DB id)/MyApp.plist"> . DB id " 点击“安装MyApp”

c)在DropBox上移动plist,但让它指向我的旧服务器(没有https)

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

我也遇到了同样的问题,尽管我已经在使用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证书来自该颁发机构。

进一步Mark Parnell的回答,一个快速而又不太规范的解决方法是将manifest plist放入Dropbox,然后使用Dropbox的web界面来获得直接的https链接(“分享链接”->“获取链接”->“下载”)。

真正的ipa可以保留在你经常饮用的地方。在将plist的URL插入itms- services URL的查询之前,您需要对其进行URL编码(尽管只需要将任何&s替换为%3D就可以了)。

一个缺点是安装对话框现在会显示“dl.dropbox.com想要安装[任何]”。