企业应用程序部署在iOS 7.1上不起作用

本文翻译自:Enterprise app deployment doesn't work on iOS 7.1

We distribute apps via an Enterprise account, using an itms-services:// URL. 我们通过企业帐户使用itms-services:// URL分发应用程序。 This has always worked fine, but after installing the iOS 7.1 beta on our iPad it refuses to install. 这一直很好,但是在我们的iPad上安装iOS 7.1 beta后,它拒绝安装。 Instead we just get the generic Cannot connect to example.com message that iOS unhelpfully displays when there is any sort of problem downloading the app. 取而代之的是,当下载应用程序时出现任何问题时,iOS只会显示通用的Cannot connect to example.com消息,iOS Cannot connect to example.com无故显示该消息。

I've been unable to find anything here on SO, on Google or in the 7.1 release notes to suggest what could be causing the problem. 我一直无法在SO,Google或7.1版本说明中找到任何内容来建议可能导致此问题的原因。


#1楼

参考:https://stackoom.com/question/1N4wt/企业应用程序部署在iOS-上不起作用


#2楼

I found the issue by connecting the iPad to the computer and viewing the console through the XCode Organizer while trying to install the app. 我通过将iPad连接到计算机并在尝试安装应用程序时通过XCode Organizer查看控制台发现了问题。 The error turns out to be: 错误结果是:

Could not load non-https manifest URL: http://example.com/manifest.plist 无法加载非https清单URL: http : //example.com/manifest.plist

Turns out that in iOS 7.1, the URL for the manifest.plist file has to be HTTPS, where we were using HTTP. 事实证明,在iOS 7.1中, manifest.plist文件的URL必须为HTTPS,而我们使用的是HTTPS。 Changing the URL to HTTPS resolved the problem. 将URL更改为HTTPS可解决此问题。

Ie

itms-services://?action=download-manifest&url=http://example.com/manifest.plist

becomes 变成

itms-services://?action=download-manifest&url=https://example.com/manifest.plist

I would assume you have to have a valid SSL certificate for the domain in question. 我假设您必须为该域拥有有效的SSL证书。 We already did but I'd imagine you'll have issues without it. 我们已经做到了,但是我想如果没有它,您会遇到问题。


#3楼

Further to the Mark Parnell's answer, a quick-and-dirty way of getting around this is to put the manifest plist into Dropbox, and then using the Dropbox web interface to get a direct https link to it ('Share link' -> 'Get link' -> 'Download'). 除了Mark Parnell的答案之外,解决此问题的一种快捷方法是将清单plist放入Dropbox,然后使用Dropbox Web界面直接获取指向它的https链接(“共享链接”->“获取链接”->“下载”)。

The actual ipa can remain wherever you always served it from. 实际的ipa可以保留在您始终提供服务的任何地方。 You'll need to URL-encode the plist's URL before inserting it into the itms-servivces URL's query (although just replacing any &s with %3D might work). 在将plist的URL插入itms-servivces URL的查询之前,您需要对plist的URL进行URL编码(尽管仅将%3D替换为&s即可)。

One downside is that the install dialog will now read "dl.dropbox.com wants to install [whatever]". 缺点之一是,安装对话框现在显示为“ dl.dropbox.com要安装[任何内容]”。


#4楼

I can confirm it works, But You have to put html AND plist on dropbox. 我可以确认它是否有效,但是您必须将HTML AND plist放在Dropbox上。 It works also for non-enterprise OTA, ie You want to share app with your dev. 它也适用于非企业OTA,即您想与开发人员共享应用。 team. 球队。

I did: 我做了:

a) on my site I made a page with this link: a)在我的网站上,我创建了一个带有以下链接的页面:

.. href="https://dl.dropboxusercontent.com/u//(your DB id)/ipa.html">MyApp .. href =“ https://dl.dropboxusercontent.com/u//(您的数据库ID)/ipa.html”> MyApp

b) on DropBox I wrote another HTML page: b)在DropBox上,我编写了另一个HTML页面:

.. https://dl.dropboxusercontent.com/u/(your DB id)/MyApp.plist"> Tap to Install MyApp .. https://dl.dropboxusercontent.com/u/(您的数据库ID)/MyApp.plist“>点击以安装MyApp

c) moved plist on DropBox but leaving it to POINT to my old server (no https) c)在DropBox上移动了plist,但将其留到POINT到我的旧服务器上(没有https)


#5楼

ingconti is right. ingconti是正确的。

  1. Upload your app.plist to dropbox. 将您的app.plist上载到保管箱。
  2. Get shared link of app.plist, like https://www.dropbox.com/s/qgknrfngaxazm38/app.plist 获取app.plist的共享链接,例如https://www.dropbox.com/s/qgknrfngaxazm38/app.plist
  3. replace www.dropbox.com with dl.dropboxusercontent.com in the link, like https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist 在链接www.dropbox.com dl.dropboxusercontent.com替换为dl.dropboxusercontent.com ,例如https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist
  4. 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). 删除Dropbox共享链接上的所有参数,例如“?dl = 0t”(根据企业应用程序部署中的 Carlos Aguirre Tradeco在iOS 7.1上无法运行,以及我自己的经验)。
  5. 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> 创建具有格式为<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist">INSTALL!!</a>的链接的download.html文件<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist">INSTALL!!</a>
  6. Upload your download.html to dropbox 将您的download.html上传到保管箱
  7. Again, get a shared link of download.html, like https://www.dropbox.com/s/gnoctp7n9g0l3hx/download.html , and remove any parameters. 再次,获得一个download.html共享链接,例如https://www.dropbox.com/s/gnoctp7n9g0l3hx/download.html ,并删除所有参数。
  8. Replace www.dropbox.com with dl.dropboxusercontent.com in the second link as well, like https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html 更换www.dropbox.comdl.dropboxusercontent.com在第二个链接,以及像https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html

Now, visit https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html in your device, you can install the app like before. 现在,在设备中访问https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html ,您可以像以前一样安装该应用程序。

WHAT A WONDERFUL WORLD! 多么美好的世界!


#6楼

It is true, going forward you are expected to do all OTA deployments over https going forward with iOS7.1. 的确如此,今后您将在iOS7.1上通过https完成所有OTA部署。 Shame on Apple for not documenting this. 对Apple感到遗憾的是没有对此进行记录。

For those of you that are looking for a better in-house solution than relying on dropbox or having to fork out cash for a certificate you can have a solution if you follow the steps outlined in tip #5 here: http://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/ 对于那些寻求更好的内部解决方案而不是依赖于保管箱或必须掏出现金来获得证书的人,如果您按照此处提示5中概述的步骤进行操作,则可以找到解决方案: http:// blog。 httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/

The gist of it is this: 要点是:

  • Create your own CA Authority certificate that you can install on the device that is fully trusted (I installed by simply emailing it) 创建您自己的CA Authority证书,您可以将其安装在完全受信任的设备上(我通过简单地通过电子邮件将其安装)
  • Create the key/cer pair against the root certificate and install it on your server 针对根证书创建密钥/ cer对,并将其安装在服务器上
  • Make sure your webserver utilizes the key/cer pair that matches the CA Authority root certificate 确保您的网络服务器使用与CA Authority根证书匹配的密钥/ cer对
  • At this point you should be able to install your apps as usual over https 此时,您应该可以照常通过https安装应用
  • All of this can be accomplished on OSX using openssl which is already installed by default 所有这些都可以在OSX上使用默认已安装的openssl来完成

This is not the same as just doing a self-signed certificate, in this solution you are also acting as your own private Certificate Authority. 这与仅执行自签名证书不同,在此解决方案中,您还充当自己的私有证书颁发机构。 If your root certificate that is installed on your Apple device is not marked as Trusted (green) then something is wrong. 如果您在Apple设备上安装的根证书未标记为“受信任”(绿色),则出问题了。 Do it over. 做完。

This absolutely works. 这绝对有效。

Update: 3/13/2014 - I have provided a small command line utility that simplifies this entire process. 更新:2014年3月13日-我提供了一个小型命令行实用程序,可简化整个过程。 You can get it at: https://github.com/deckarep/EasyCert/releases 您可以在以下位置获取它: https : //github.com/deckarep/EasyCert/releases

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值