热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

企业应用程序部署在iOS7.1上不起作用

本文翻译自:EnterpriseappdeploymentdoesntworkoniOS7.1WedistributeappsviaanEnterpriseaccou

本文翻译自: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 INSTALL!! 创建具有格式为INSTALL!!的链接的download.html文件INSTALL!!
  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


推荐阅读
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • linux编写弹球游戏,手把手教你开发一款基于Box2D的弹球游戏(一)
    今天我们来介绍一款物理引擎,并基于它完成一个弹球游戏。提到物理引擎,就是在游戏中模拟真实世界的运动,碰撞,摩擦等等。Coco ... [详细]
  • Objective C接入Sonar代码扫描
    目录技术方案环境准备扫描器配置项目配置SonarQube配置jenkins接入一些坑技术方案Sonar本身有对OC的代码扫描插件——SonarCFamily,但是是收费的。出于成本 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • angular.element使用方法及总结
    2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
author-avatar
晴天逍遥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有