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

Mar*_*ell 317 deployment ios

我们使用itms-services://URL 通过Enterprise帐户分发应用程序.这一直运行良好,但在iPad上安装iOS 7.1测试版后,它拒绝安装.相反Cannot connect to example.com,当下载应用程序出现任何问题时,我们只会获得iOS无用的通用消息.

我一直无法在SO,Google或7.1发行说明中找到任何可能导致问题的原因.

Mar*_*ell 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
Run Code Online (Sandbox Code Playgroud)

itms-services://?action=download-manifest&url=https://example.com/manifest.plist
Run Code Online (Sandbox Code Playgroud)

我认为您必须拥有相关域的有效SSL证书.我们已经做了,但我想你没有它会有问题.

  • 您可以为您的网站创建自签名SSL证书,不要忘记使用iPhone配置实用程序创建配置文件,以使您的设备上的证书受信任. (5认同)
  • 我创建了自己的证书颁发机构并使用它签署了Web服务器ssl证书.通过Apple Configurator,您可以创建一个将此CA标记为受信任的配置文件.之后,安装按预期工作. (5认同)
  • 我和@Niralp有同样的麻烦.我使用自签名SSL证书设置我们的apache服务器.服务器似乎正在使用SSL很好,但OTA链接仍然不起作用,并给出上面报告的错误.我在iOS设备上安装了证书,但这也没有什么区别.有什么想法吗? (3认同)

old*_*man 231

ingconti是对的.

  1. 将您的app.plist上传到Dropbox.
  2. 获取app.plist的共享链接,例如https://www.dropbox.com/s/qgknrfngaxazm38/app.plist
  3. 更换www.dropbox.comdl.dropboxusercontent.com的连结,例如https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist
  4. 删除Dropbox可共享链接上的所有参数,例如"?dl = 0t"(根据Carlos Aguirre Tradeco,企业应用程序部署在iOS 7.1和我自己的经验中不起作用).
  5. download.html使用格式为的链接创建文件<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist">INSTALL!!</a>
  6. 上传download.html到Dropbox
  7. 再次,获取download.html的共享链接,如https://www.dropbox.com/s/gnoctp7n9g0l3hx/download.html,并删除所有参数.
  8. www.dropbox.com可以dl.dropboxusercontent.com在第二个链接中替换,例如https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html

现在,访问https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html您的设备,您可以像以前一样安装应用程序.

多美妙的世界!

  • 谢谢......我是Apple的忠实粉丝,但现在开始讨厌它了......因为这些愚蠢的事情毁了我的时间...... (13认同)
  • 这节省了我的培根!谢谢你,谢谢你,谢谢你! (4认同)
  • 我明白了。之前我将文件保存在我的私人文件夹中,我再次将它们更改为公共文件夹。不要忘记将文件放入公共文件夹中。干杯老曼 (2认同)

小智 72

除了Mark Parnell的答案之外,快速而肮脏的解决方法是将清单plist放入Dropbox,然后使用Dropbox Web界面获取直接的https链接('Share link' - >'获取链接' - >'下载').

实际的ipa可以保留在您始终提供的任何地方.在将plist的URL插入到itms-servivces URL的查询之前,您需要对plist的URL进行URL编码(尽管只使用%3D替换任何&s可能有效).

一个缺点是安装对话框现在将显示为"dl.dropbox.com想安装[无论如何]".


Ral*_*veo 36

确实,未来你需要在iOS7.1上通过https进行所有OTA部署.对Apple没有记录这一点感到羞耻.

对于那些正在寻找更好的内部解决方案而不是依赖Dropbox或者不得不为证书支付现金的人,如果您按照提示#5中列出的步骤在http:// blog中找到解决方案. httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/

它的要点是这样的:

  • 创建您自己的CA Authority证书,您可以在完全受信任的设备上安装(我只需通过电子邮件发送即可安装)
  • 根据根证书创建密钥/ cer对,并将其安装在服务器上
  • 确保您的Web服务器使用与CA Authority根证书匹配的密钥/ cer对
  • 此时,您应该可以像往常一样通过https安装应用
  • 所有这些都可以在OSX上使用openssl完成,openssl默认已经安装

这与仅执行自签名证书不同,在此解决方案中,您还充当自己的专用证书颁发机构.如果Apple设备上安装的根证书未标记为"可信"(绿色),则表示出现问题.做完了.

这绝对有效.

更新:2014年3月13日 - 我提供了一个小型命令行实用程序,可以简化整个过程.您可以访问:https://github.com/deckarep/EasyCert/releases


Jam*_*ter 34

我有同样的问题,虽然我已经在使用SSL服务器,但只是将链接更改为https不起作用,因为存在潜在的问题.

在此输入图像描述 点击此处查看图片

突出显示的一点告诉我,我们应该选择信任证书,但由于这是应用程序商店,通过Safari工作,恢复建议不会出现.


我对现有的解决方案不满意,因为:

  • 某些选项需要依赖第三方(Dropbox)
  • 我们不愿意支付SSL证书
    • 免费SSL证书只是一种临时解决方案.

我终于通过创建自签名根证书颁发机构并使用此生成我们服务器的SSL证书找到了解决方案.

我使用了Keychain Access和OSX Server,但每个步骤都有其他有效的解决方案


创建证书颁发机构

根据我的收集,证书颁发机构用于验证证书是否真实.由于我们即将自己创建一个,但它并不完全安全,但这意味着您可以信任来自给定权限的所有证书.默认情况下,您的浏览器通常会包含这些权限的列表,因为它们实际上是受信任的.(GeoTrust Global CA,Verisign等)

  • 打开钥匙串并使用证书助手创建权限

在此输入图像描述

  • 填写您的证书颁发机构信息

在此输入图像描述

  • 我不知道是否有必要,但我让权威得到了信任.

在此输入图像描述


生成证书签名请求

在我们的示例中,证书签名请求由服务器管理员生成.只是它是一个文件,询问"我可以为我的网站提供包含此信息的证书".

  • 接下来,您将需要创建证书签名请求(我使用OSX Server的证书管理器

在此输入图像描述

  • 填写您的证书信息(必须只包含ascii字符!,谢谢@Jasper Blues)

在此输入图像描述

  • 将生成的CSR保存在某处

在此输入图像描述


创建证书

再次作为证书颁发机构,由您来决定向您发送CSR的人是否是真实的并且他们不假装是其他人.真正的权威有自己的方式来做这件事,但既然你很有信心你是你,你的验证应该是非常肯定的:)

  • 返回Keychain Access并打开"Create A Certificate .."选项,如图所示

在此输入图像描述

  • 将已保存的CSR拖到指示的框中

在此输入图像描述

  • 单击"让我覆盖此请求的默认值"按钮

在此输入图像描述

  • 我想增加有效期.

在此输入图像描述

  • 出于某种原因,我们必须再次填写一些信息

在此输入图像描述

  • 单击此屏幕上的继续

在此输入图像描述

  • 请确认你点击SSL服务器认证,这个让我感到头痛.

在此输入图像描述

  • 您可以单击继续完成其余选项.

  • 邮件应用程序将打开,让您有机会发送证书.而不是通过电子邮件,右键单击并保存.

在此输入图像描述


安装证书

我们现在需要设置服务器以使用我们刚刚为其SSL流量创建的证书.

  • 如果您正在使用的设备您的服务器,您可能会发现该证书已经安装.

在此输入图像描述

  • 如果没有,请双击待处理证书,然后将我们刚从电子邮件中保存的PEM文件拖到指定的空间中.(或者,如果您没有保存,可以从钥匙串导出PEM.)

在此输入图像描述

  • 更新您的服务器以使用此新证书.如果您发现新证书不会"粘住"并继续恢复,请返回BOLD ITALIC CAPS中的位

在此输入图像描述


设置设备

您需要安装应用程序所需的每个设备都需要拥有此证书颁发机构的副本,以便他们知道他们可以信任来自该机构的SSL证书

  • 返回Keychain Access并将您的证书颁发机构导出为.cer

在此输入图像描述

  • 然后我使用我的OTA应用程序将此文件放在我的服务器上,用户可以单击此链接并下载授权证书.直接通过电子邮件将证书发送给用户也是一种有效的选择.

在此输入图像描述

  • 在您的设备上安装证书.

在此输入图像描述


测试

  • 确保您的plist链接是https

    • 尝试安装应用程序!它现在应该工作.证书颁发机构是受信任的,SSL证书来自该机构.


ing*_*nti 6

我可以确认它有效,但你必须将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)

  • 我不需要输入HTML,它似乎工作得很好.只是plist就足够了. (7认同)