我们使用itms-services://
网址通过Enterprise帐户分发应用。这一直运行良好,但在iPad上安装iOS 7.1测试版后,它拒绝安装。相反,当下载应用程序出现任何问题时,我们只会收到iOS无用的显示的通用Cannot connect to example.com
消息。
我一直无法在此处,谷歌或7.1发行说明中找到任何可能导致问题的原因。
答案 0 :(得分:330)
通过将iPad连接到计算机并在尝试安装应用程序时通过XCode Organizer查看控制台,我发现了这个问题。错误结果是:
无法加载非https清单网址:http://example.com/manifest.plist
事实证明,在iOS 7.1中,manifest.plist
文件的URL必须是HTTPS,我们使用的是HTTP。将URL更改为HTTPS解决了问题。
即
itms-services://?action=download-manifest&url=http://example.com/manifest.plist
变为
itms-services://?action=download-manifest&url=https://example.com/manifest.plist
我认为您必须拥有相关域的有效SSL证书。我们已经做了,但我想你没有它会有问题。
答案 1 :(得分:230)
ingconti是对的。
www.dropbox.com
替换为链接中的dl.dropboxusercontent.com
,例如https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist download.html
<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist">INSTALL!!</a>
文件
download.html
上传到dropbox www.dropbox.com
替换为第二个链接中的dl.dropboxusercontent.com
,例如https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html 现在,请在您的设备中访问https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html
,您可以像以前一样安装该应用。
多么美好的世界!
答案 2 :(得分:72)
除了Mark Parnell的回答之外,解决这个问题的一种快速而肮脏的方法是将清单plist放入Dropbox,然后使用Dropbox Web界面获取直接的https链接('分享链接' - &gt;'获取链接' - &gt;'下载')。
实际的ipa可以保留在您始终提供的任何地方。在将plist的URL插入到itms-servivces URL的查询中之前,您需要对plist的URL进行URL编码(尽管只用%3D替换任何&amp; s可能有效)。
一个缺点是安装对话框现在会显示“dl.dropbox.com想安装[无论如何]”。
答案 3 :(得分:36)
确实如此,您需要在iOS7.1上通过https进行所有OTA部署。对于Apple没有记录这一点感到羞耻。
对于那些正在寻找更好的内部解决方案而不是依赖Dropbox或者不得不为证书支付现金的人,如果您按照提示#5中列出的步骤,可以找到解决方案:{{3 }}
它的主旨是:
这与仅执行自签名证书不同,在此解决方案中,您还充当自己的专用证书颁发机构。如果Apple设备上安装的根证书未标记为“可信”(绿色),则表示出现问题。做完。
这绝对有效。
更新:2014年3月13日 - 我提供了一个小型命令行实用程序,可以简化整个过程。您可以访问:http://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/
答案 4 :(得分:33)
我遇到了同样的问题,虽然我已经在使用SSL服务器,但只是将链接更改为https并不会因为存在根本问题而无法正常工作。
突出显示的一点告诉我,我们应该可以选择信任证书,但由于这是应用程序商店,通过Safari工作,恢复建议不会被呈现。< / p>
我对现有解决方案并不满意,因为:
我终于通过创建自签名根证书颁发机构并使用此生成我们服务器的SSL证书找到了解决方案。
我使用了Keychain Access和OSX Server,但每个步骤还有其他有效的解决方案
根据我收集的内容,证书颁发机构用于验证证书是否为正版。由于我们自己要创建一个,但它并不完全是 secure ,但这意味着您可以信任来自给定权限的所有证书。默认情况下,您的浏览器通常会包含这些权限的列表,因为这些实际上受信任。 (GeoTrust Global CA,Verisign等)
在我们的示例中,证书签名请求由服务器管理员生成。简单来说,它是一个文件,要求&#34;我可以为我的网站提供包含此信息的证书吗&#34;。
再次作为证书颁发机构,由您自行决定向您发送CSR的人是否是真实的,并且他们不会假装成其他人。真正的权威人士有自己的方式来做这件事,但既然你很有信心确实是你,那么你的验证应该是非常肯定的:)
您可以点击继续浏览其余选项。
邮件应用程序将打开,让您有机会发送证书。右键单击并保存,而不是通过电子邮件发送。
我们现在需要设置服务器以使用我们刚刚为其创建的SSL流量证书。
您需要安装应用程序的每个设备都需要拥有此证书颁发机构的副本,以便他们知道他们可以信任来自该机构的SSL证书
确保您的plist链接是https
答案 5 :(得分:6)
我可以确认它有效,但你必须将html和plist放在dropbox上。 它也适用于非企业OTA,即您想与您的开发者共享应用程序。队。
我做了:
a)在我的网站上,我创建了一个包含以下链接的页面:
.. href =“https://dl.dropboxusercontent.com/u//(your DB id)/ipa.html”&gt; MyApp
b)在DropBox上我写了另一个HTML页面:
.. https://dl.dropboxusercontent.com/u/(your DB id)/MyApp.plist“&gt; 点按即可安装MyApp
c)在DropBox上移动plist但是将它留给POINT到我的旧服务器(没有https)
答案 6 :(得分:3)
打开终端并运行命令: curl -i https://(.ipa文件路径不是plist)
这将告诉您安装程序是否可以看到IPA文件。如果你运行带有'-i'的curl命令,你会看到完整的响应,它可能不是IPA文件。 这是安装程序看到的响应,因此如果它没有返回HTTP 200和IPA,则需要将其返回给您。
ITMS安装程序不保存Safari的任何上下文。如果您在Safari中的安全门户中进行了身份验证,则身份验证cookie不会传递给安装程序。即安装程序需要能够在没有身份验证的情况下查看应用程序,这可能是您“无法连接到服务器”的原因。
答案 7 :(得分:2)
我遇到了同样的麻烦,如上所述。
这两个页面都成功地在带有ios 7.1的iphone中安装应用程序
但是,现在使用ios 7.0x的iphone无法安装该应用程序。
我创建了一个新问题:upgraded adhoc app deployment doesnt work on ios previous to 7.1
这两个问题都是紧密相关的,并且由于缺乏官方参考资料而受到约束。
答案 8 :(得分:2)
一些好人通过使用Class 1 StartSSL证书和共享Apache配置来处理此问题,该配置添加了证书支持(将与任何证书一起使用)和用于自动更改现有* .plist文件中的链接的代码。复制太长,所以这里是链接: http://cases.azoft.com/how-to-fix-certificate-is-not-valid-error-on-ios-7/
答案 9 :(得分:2)
如果您碰巧拥有的AWS S3也像魅力一样。好。相对而言:-)
在AWS中为您的ad hocs创建一个存储桶,添加一个索引文件(它可以只是一个空白的index.html文件)然后使用可以连接到S3的客户端,如CyberDuck或Coda(我使用Coda - 你在哪里' d选择添加站点以获取连接窗口)然后设置连接,如附加:
然后在XCode中临时构建您的企业,并确保使用https://s3.amazonaws.com/your-bucket-name/your-ad-hoc-folder/your-app.ipa作为应用程序URL,并将其上传到新的S3存储桶目录。
您的itms链接应该匹配,即itms-services://?action = download-manifest&amp; url = https://s3.amazonaws.com/your-bucket-name/your-ad-hoc-folder/your-app.plist
瞧瞧。
这仅适用于通用AWS URL - 我没有尝试使用AWS上的自定义URL,因此您可能需要采取不同的方式。
我决心尝试让詹姆斯·韦伯斯特的解决方案发挥作用,但我无法与普莱什克合作。
答案 10 :(得分:1)
作为使用Dropbox进行企业分发的替代方法,您可以使用TestFlight分发企业签名的应用程序。
https://www.testflightapp.com/
这是托管和分发特定开发构建和企业构建的绝佳服务。
答案 11 :(得分:1)
进一步以前关于Dropbox的答案,我实现了以下文件树,例如只有PLIST文件必须上传到Dropbox:
使用“与Dropbox共享链接”选项将链接复制到剪贴板。在通过www.dropbox.com
更改部件dl.dropboxusercontent.com
后,必须将此链接复制到您的html文件中的itms-servivces网址查询中。注意我按照@Mike的建议对URL进行了编码,但是如果没有这样做,我就不会测试。现在,itms-services URL的查询应如下所示:itms-services://?action=download-manifest&url=https%3A%2F%2Fdl.dropboxusercontent.com%2Fs%2FYourShortDropboxLink.plist
以http格式将html文件上传到您的服务器。请注意,html文件包含指向ipa和配置文件的链接。
从现在起,只有ipa文件必须更改才能通过OTA向您的Beta版测试人员提供下一个应用版本。直到Apple还在改变安全规则。
我在我正在使用的非常简单的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>
答案 12 :(得分:0)
我们的团队使用dropbox进行临时分发,该分发使用https,但我们的应用仍无法安装。经过多次故障排除后,我们意识到标题字段也是必需的。每当我们发送没有此字段的链接时,safari会忽略该链接,并且不会提示用户进行安装。有时为了快速开发测试,我们跳过xml中的标题节点而不是填充它。如果这对有此问题的任何人都有帮助,请确保您的.plist包含以下填充的节点:
....
<string>software</string>
<key>title</key>
<string>Your App Name</string>
...
答案 13 :(得分:0)
阅读这篇文章后,我仍然有下载我的应用程序的问题。问题是因为自签名SSL证书。
我找到了解决这个问题的方法。您需要在网络上传您的扩展名为“.crt”的证书文件,并在您的移动版中输入该地址。系统会询问您将证书添加到受信任证书列表中。完成此操作后,您将能够安装您的ad-hoc应用程序。
答案 14 :(得分:0)
通用解决方案是将您的设备连接到Mac并观察安装过程中发生的情况。我收到了一个错误:
无法加载包含基础错误的下载清单:错误 Domain = NSURLErrorDomain Code = -1202&#34;无法连接到商店&#34; UserInfo = 0x146635d0 {NSLocalizedDescription =无法连接到 Store,NSLocalizedRecoverySuggestion =你想连接到 无论如何服务器?,NSLocalizedFailureReason =安全连接不能 成立。 请检查您的日期&amp;时间设置。, NSErrorFailingURLStringKey = https://myserver.com/app/manifest.plist, NSUnderlyingError = 0x14678880&#34;此服务器的证书是 无效。您可能正在连接到假装的服务器 “myserver.com”可以把您的机密信息放在 风险。&#34;,NSURLErrorFailingURLPeerTrustErrorKey =, NSErrorFailingURLKey = https://myserver.com/app/manifest.plist}
在该错误中甚至有建议检查日期设置。由于某种原因,日期是1970年1月1日。设置正确的日期解决了问题。
答案 15 :(得分:-1)
Apter试图将itms-services://?action=download-manifest&url=http://....
更改为itms-services://?action=download-manifest&url=https://....
。它也行不通。警报为cannot connect to my domain
。我发现还需要更新网页。
问题不在于主URL是HTTPS,而是页面内链接中的一些HTML代码。您需要开发人员更新网页。我还注意到您的暂存域上没有有效的SSL证书,因此您需要安装一个或使用Dropbox,这里是the link maybe helpful for you