deployment - ios 7.1 企业应用程序部署不工作

  显示原文与译文双语对照的内容

我们通过一个企业帐户,使用 itms-services:// URL来分发应用程序。 这一直工作得很好,但是在我们的iPad上安装 iOS 7.1测试版后,它拒绝安装。 我们只得到一般 Cannot connect to example.com 当下载应用程序有任何问题时 iOS unhelpfully显示的消息。

我在这里找不到任何东西,所以在谷歌或者 7.1发行的版本中说明可能导致问题的原因。

时间:

在尝试安装应用程序时,我通过将iPad连接到计算机并通过XCode管理器查看控制台找到了问题。 错误为:

无法加载non-https清单 URL: 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证书。 我们已经做到了,但我想你会有问题没有它。

ingconti是正确的。

  1. 将你的app.plist 上载到 dropbox 。
  2. 获取 app.plist,的共享链接,如 https://www.dropbox.com/s/qgknrfngaxazm38/app.plist
  3. www.dropbox.com 替换为链接中的dl.dropboxusercontent.com,如 https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist
  4. 删除任何参数对收存箱可以共享链接如"dl=0t"( 例如每卡洛斯 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 在你的设备中,你可以像以前一样安装应用程序。

在quick-and-dirty进一步parnell的答案标记了,这个是把该清单多选择导入到处走动的方式又可以使用收存箱升降梭箱,然后网页界面中直接 https'->'('分享链接链接到该网站获得链接'->'下载') 。

实际的ipa可以留在任何你总是提供的地方。 你将需要在查询的网址( 并且用 %3D 可能work,虽然只是替换任何 & s ) itms-servivces URL-encode缩略图并多选择导入,然后把它插入。

一个缺点是安装对话框现在会读取"dl.dropbox.com 想要安装 [whatever]"。

苹果对于未文档化this,它为真,再往后你得完成所有在线旅行社的部署https再往后上方具有 iOS7.1. shame.

在提示 #5 here,针对这些的你也正在寻找一个更好的内部的解决方案要比依赖下拉框,也不必走出来现金,以供证书你可以有一个解决方案如果你遵循以下步骤 outlined: http://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/

它的要点是:

  • 创建你自己的CA颁发机构证书,你可以在完全信任的设备上安装它( 我通过电子邮件发送它)
  • 根据根证书创建密钥/核证对并将它的安装到服务器上
  • 确保web服务器使用与CA颁发机构根证书匹配的密钥/cer对
  • 此时你应该能够像往常一样通过https安装你的应用程序
  • 所有这些都可以在OSX上使用openssl实现,它已经默认安装

这与执行self-signed证书不同,在这个解决方案中,你也充当自己的私有证书颁发机构。 如果你的Apple设备上安装的根证书没有被标记为可信( 绿色),那么就会出现错误。 完成它。

这绝对可以。

更新:3/13/2014 - 我提供了一个小的命令行 工具来简化整个过程。 你可以在: https://github.com/deckarep/EasyCert/releases

我试了同样的问题,虽然当时我已经使用的是SSL服务器,只需更改这些链接为https并非工作为他们的潜在问题。

enter image description here单击这里查看图像列表

这突出显示位告诉我,我们 应该被提供一个选项以在 App Store 。工作通过信任该证书,但因为这是 Safari,这样恢复的建议只是后,并未。


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

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

使用this,我终于找到解决问题的方法通过创建一个自签署根证书颁发机构的服务器请参阅文挡并生成我们的SSL

我使用了钥匙串访问和OSX服务器,但是每一步都有其他有效的解决方案


创建证书颁发机构

据我所知,证书颁发机构用于验证证书是否真实。 在给定authority,因为我们将要创建一个我们自己,但这不完全安全,但是它意味着你可以信任所有 certificates. 这些权限通常的列表默认情况下包含在你的浏览器,而这些是真正受信任。 ( GeoTrust全局 CA,Verisign等)

  • 打开钥匙串并使用证书助手创建一个颁发机构

enter image description here

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

enter image description here

  • 我不知道是否有必要,但我使权威可信。

enter image description here


生成证书签名请求

在我们的例子中,证书签名请求由服务器管理员生成。 只是一个请求"是否可以为我的网站使用这里信息的证书"的文件。

  • 接下来你需要创建你的证书签名申请 ( 我使用了这个位的服务器管理器的OSX证书)

enter image description here

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

enter image description here

  • 将生成CSR保存到某处

enter image description here


正在创建证书

再次充当的证书颁发机构,它是由你来决定如果的人员向你发送了企业社会责任是真的和他们没有假装成其他人。 真正的机构有自己的方法实现这一目的,但因为你是但愿相当确信,你是你,你的验证应该相当一定:)

  • 返回到钥匙串访问并打开"创建证书。"选项,如下所示

enter image description here

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

enter image description here

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

enter image description here

  • 我喜欢增加有效期。

enter image description here

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

enter image description here

  • 在这里屏幕上单击继续

enter image description here

  • 确保你单击SSL服务器身份验证,这一个给我造成人头痛。

enter image description here

  • 你可以在其余选项中单击continue继续 of 。

  • 邮件应用将打开,给你发送证书的机会。 而不是电子邮件,右键点击并保存它。

enter image description here


正在安装证书

现在我们需要设置服务器来使用我们刚才创建的证书,因为它是SSL通讯。

  • 如果你在上工作的设备已经安装好,你可能会发现该证书已经安装。

enter image description here

  • 如果没有,双击挂起的证书并将我们刚从电子邮件中保存的PEM文件拖到指定的空间。 ( 或者,如果你没有保存,则可以从钥匙串导出你的PEM 。)

enter image description here

  • 更新你的服务器以使用这个新证书。 在 黑斜体大写, 如果你发现了新的证书将不会"坚持"和保留还原,回到这些位

enter image description here


设置设备

你需要安装应用的每个设备都需要有这个证书颁发机构的副本,这样他们才能信任来自该机构的SSL证书

  • 返回到钥匙串访问并将你的证书颁发机构导出为。cer

enter image description here

  • 然后我将这个文件放在我的服务器上,使用我的OTA应用程序,用户可以点击这个链接并下载授权证书。 直接向用户发送证书也是一个有效的选项。

enter image description here

  • 在你的设备上安装证书。

enter image description here


测试

  • 请确定你的plist链接是 https

    • 尝试安装一个应用程序 ! 它现在应该工作。证书颁发机构被信任和SSL证书来自这一权力。

我可以确认它是有效的,但是你必须把html和plist放在dropbox上。 它也适用于 non-enterprise OTA,换句话说,你想与你的开发者分享应用。 团队。

我做了:

在我的网站上,我使用这里链接创建了一个页面:

href="https://dl.dropboxusercontent.com/u//(your 数据库标识)/ipa 。html"> MyApp

在DropBox上,我写了另一个HTML页面:

https://dl.dropboxusercontent.com/u/(your DB id )/MyApp 。plist"> Tap以安装 MyApp

) 移动了DropBox上的plist,但将它留给了我的旧服务器( 没有 https )

我遇到了同样的问题,并如上所述。

  • 将plist放入 dropbox 。
  • 在下载文件按钮上,用鼠标右键单击文档下方的图像选择复制链接操作。 这个链接已经是一个类似于 https://dl.dropboxusercontent.com/s/xyz123/app.plist?stuff=stuff的。
  • 删除参数( 只保留在https和。plist之间的地址)
  • 在网上浏览url编码,选择其中一个链接,复制,粘贴,执行,然后将结果文本复制并粘贴到我拥有的itms-services链接中。 顺便说一下,我有两个不同位置的html,其中一个是ipa所在的位置。
  • 确保plist包含对ipa文件的绝对引用。

使用 ios 7.1在iphone上安装该应用程序的工作成功

但是,现在带有 ios 7.0 x的iphone无法安装该应用。

我创建了一个新问题: 升级的adhoc应用程序部署不能在 7.1上的ios上运行

这两个问题都是紧密相关的,同时也被缺少官方引用所绑定。

一些不错的家伙通过使用类 1 StartSSL证书和共享的Apache配置来处理这个问题,它添加了证书支持( 将使用任何证书) 和在现有 *.plist 文件中更改链接的代码。 复制太长,下面是链接: http://cases.azoft.com/how-to-fix-certificate-is-not-valid-error-on-ios-7/

如果你恰好有 AWS S3,它充满魔力也。 相对而言,相对来讲:

在AWS中为你的广告hocs创建一个 bucket,添加一个索引文件( 它可以是空白的index.html 文件),然后使用一个可以连接到S3的客户端,如CyberDuck或者 Coda ( 我使用了 Coda - 在那里你选择添加站点来获得连接窗口),然后设置连接如下:

然后在XCode中构建你的企业临时,并确保使用 https://s3.amazonaws.com/your-bucket-name/your-ad-hoc-folder/your-app.ipa 作为应用程序 URL,并将它的上载到新的S3 bucket目录。

你的外接程序链接应该匹配,换句话说,itms-services://?action=download-manifest&url= https://s3.amazonaws.com/your-bucket-name/your-ad-hoc-folder/your-app.plist

和 voilá 。

这只适用于通用 AWS url - 我没有在AWS上尝试自定义 url,所以你可能需要做一些不同的事情。

我决定尝试让 James web ster的解决方案在上面工作,但我不能让它与Plesk一起工作。

打开终端并运行命令: curl -i https://( 。ipa文件路径不是 plist )

这将告诉你安装程序是否可以查看IPA文件。 如果你用'-i'运行curl命令,你会看到完整的响应,它可能不是IPA文件。 这是安装程序看到的响应,所以如果不返回 HTTP 200和一个 IPA,你需要在你的终端上返回它。

addin安装程序不保存Safari中的任何上下文。 如果你在Safari中验证了安全门户,认证 Cookies 不会传递到安装程序。 换句话说,安装程序需要能够在没有身份验证的情况下查看应用程序,这可能是你获得'无法连接到服务器'的原因。

...