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

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


当前回答

我可以确认它的工作,但你必须把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)

其他回答

我可以确认它的工作,但你必须把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)

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,您可以像以前一样安装应用程序。

多么美好的世界啊!

进一步解释之前关于Dropbox的问题,我实现了以下文件树,比如只有PLIST文件必须上传到Dropbox:

upload the ipa file to your server in http (no change here) upload the provisioning (.mobileprovision) file to your server in http (no change here) upload the plist file to your dropbox (no change to do inside the plist file as the URLs are in absolute) use the option "Share the link with Dropbox" which copies the link to your clipboard. This link has to be copied into your html file into the itms-servivces URL's query after changing the part www.dropbox.com by dl.dropboxusercontent.com. Note I URL encoded the link as suggested by @Mike but I don't test without to do it. Now the itms-services URL's query should look like this: itms-services://?action=download-manifest&url=https%3A%2F%2Fdl.dropboxusercontent.com%2Fs%2FYourShortDropboxLink.plist upload the html file to your server in http. Note the html file contains both links to ipa and provisioning files. access to your html file from your device and now the ipa can be installed by OTA like usually.

从现在开始,只有ipa文件必须更改,OTA提供下一个应用版本给你的测试人员。直到苹果改变安全规则。

我在这里加入我使用的非常简单的HTML文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>iPhone app for test</title>
</head>
<body>
<h1>iPhone app for test</h1>
<br/>
<ul>
    <li><a href="http://www.yourdomain.com/with/directories/provision/v.last/yourprovision_adhoc.mobileprovision">
            Install Provisioning File</a></li>
    <li><a href="itms-services://?action=download-manifest&url=https%3A%2F%2Fdl.dropboxusercontent.com%2Fs%2FYourShortDropboxLink.plist">
            Install Application</a></li>
</ul>
</body>
</html>

一些好人通过使用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上得到它