企业应用程序部署不需要';无法在iOS 7.1上运行

企业应用程序部署不需要';无法在iOS 7.1上运行,ios,deployment,Ios,Deployment,我们使用itms服务://URL,通过企业帐户分发应用程序。这一直运作良好,但在我们的iPad上安装了iOS 7.1测试版之后,它拒绝安装。相反,当下载应用程序出现任何问题时,我们只会收到iOS无法连接到example.com的一般消息 我在SO、Google或7.1发行说明中找不到任何东西来说明问题的原因。我通过将iPad连接到计算机,并在尝试安装应用程序时通过XCode Organizer查看控制台来发现问题。错误结果是: 无法加载非https清单URL: 事实证明,在iOS 7.1中,ma

我们使用
itms服务://
URL,通过企业帐户分发应用程序。这一直运作良好,但在我们的iPad上安装了iOS 7.1测试版之后,它拒绝安装。相反,当下载应用程序出现任何问题时,我们只会收到iOS无法连接到example.com的一般消息


我在SO、Google或7.1发行说明中找不到任何东西来说明问题的原因。

我通过将iPad连接到计算机,并在尝试安装应用程序时通过XCode Organizer查看控制台来发现问题。错误结果是:

无法加载非https清单URL:

事实证明,在iOS 7.1中,
manifest.plist
文件的URL必须是HTTPS,我们使用的是HTTP。将URL更改为HTTPS解决了此问题

变成

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

我假设您必须拥有相关域的有效SSL证书。我们已经这样做了,但我想没有它你会有问题。

马克·帕内尔的回答更进一步,一种快速而肮脏的解决方法是将清单plist放入Dropbox,然后使用Dropbox web界面获得直接的https链接(“共享链接”->“获取链接”->“下载”)

实际的ipa可以保留在您一直提供服务的任何地方。在将plist的URL插入itms服务URL的查询之前,您需要对其进行URL编码(尽管仅用%3D替换任何&s可能有效)


一个缺点是,安装对话框现在将显示“dl.dropbox.com想要安装[任何]”

我可以确认它可以工作,但您必须将html和plist放在dropbox上。 它也适用于非企业OTA,即您希望与开发团队共享应用程序

我做到了:

a) 在我的网站上,我制作了一个包含以下链接的页面:

.. href=”https://dl.dropboxusercontent.com/u//(您的DB id)/ipa.html“>MyApp

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

。。https://dl.dropboxusercontent.com/u/(您的数据库id)/MyApp.plist“> 点击以安装MyApp

c) 在DropBox上移动了plist,但让它指向我的旧服务器(没有https)

ingconti是正确的

  • 将app.plist上载到dropbox
  • 获取app.plist的共享链接,如
  • 将链接中的
    www.dropbox.com
    替换为
    dl.dropboxusercontent.com
    ,如
  • 删除dropbox可共享链接上的任何参数,如“?dl=0t”(根据Carlos Aguirre Tradeco at和我自己的经验)
  • 创建一个
    download.html
    文件,其链接格式为
  • 将您的
    download.html
    上传到dropbox
  • 同样,获取download.html的共享链接,如,并删除任何参数
  • 在第二个链接中将
    www.dropbox.com
    替换为
    dl.dropboxusercontent.com
    ,如
  • 现在,请访问
    https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html
    在您的设备中,您可以像以前一样安装应用程序


    这是一个多么美好的世界啊!

    没错,在iOS7.1的基础上,我们希望您通过https进行所有OTA部署。苹果公司没有记录这一点,真是太遗憾了

    对于那些正在寻找比依赖dropbox或必须掏钱购买证书更好的内部解决方案的人,如果您遵循提示5中概述的步骤,您可以找到一个解决方案:

    其要点如下:

    • 创建您自己的CA授权证书,您可以将其安装在完全受信任的设备上(我只需通过电子邮件安装)
    • 根据根证书创建密钥/证书对,并将其安装到服务器上
    • 确保您的Web服务器使用与CA授权根证书匹配的密钥/cer对
    • 此时,您应该能够像往常一样通过https安装应用程序
    • 所有这些都可以在OSX上使用openssl完成,默认情况下已经安装了openssl
    这与仅执行自签名证书不同,在此解决方案中,您还充当自己的私人证书颁发机构。如果安装在Apple设备上的根证书未标记为Trusted(绿色),则说明有问题。请重新执行

    这绝对有效


    更新:2014年3月13日-我提供了一个小型命令行实用程序,简化了整个过程。您可以在以下网址获得它:

    作为使用Dropbox进行企业分发的替代方法,您可以使用TestFlight进行企业签名应用的分发


    这对于托管和分发临时开发版本和企业版本来说都是一项非常棒的服务。

    我遇到了同样的问题,并且做了如上所述的事情

    • 把夹子放在升降箱里
    • 在“下载文件”按钮上,在文档图像下方,用鼠标右键选择“复制链接”操作。此链接已经类似于 有很多情人
    • 删除参数(仅保留https和.plist之间的地址)
    • 在线浏览url encode,选择其中一个链接,复制、粘贴、执行,然后将生成的文本复制并粘贴到我拥有itms服务链接的html中。 顺便说一句,我把这个html放在两个不同的位置,其中一个是ipa所在的位置
    • 确保plist包含对ipa文件的绝对引用
    这两个页面都成功地在ios 7.1的iPhone上安装了该应用程序

    但是,现在使用ios 7.0x的iPhone无法安装该应用程序

    我提出了一个新问题:


    这两个问题密切相关,也因为缺乏官方参考而联系在一起。

    一些好人通过使用Class 1 StartSSL证书和共享Apache配置处理了这个问题,该配置添加了证书支持(将与任何证书一起使用)和用于更改现有*中链接的代码。
    itms-services://?action=download-manifest&url=https://example.com/manifest.plist
    
          ....
         <string>software</string>
        <key>title</key>
         <string>Your App Name</string>
          ...
    
    <!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>