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