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

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


当前回答

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

其他回答

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)

我也遇到了同样的问题,尽管我已经在使用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想要安装[任何]”。

Our team uses dropbox for ad-hoc distribution which uses https but still our app was failing to install. After much trouble-shooting we realized that the title field is required too. Whenever we sent out a link without this field safari ignored the link and did not prompt the user to install. Sometimes for quick development tests we skipped over the title node in the xml and not populate it. In case this is helpful for anyone having this issue make sure that your .plist contains the following nodes populated:

      ....
     <string>software</string>
    <key>title</key>
     <string>Your App Name</string>
      ...