【问题标题】:App Over-The-Air Installation with HTTPS not working使用 HTTPS 的应用程序无线安装不起作用
【发布时间】:2012-02-01 17:10:12
【问题描述】:

我知道通常通过 HTTPS 安装是有效的,但不知何故它在我的环境中不起作用。

据我所知,itms-service 链接是 HTTP:

itms-services://?action=download-manifest&url=http://' . $_SERVER['SERVER_NAME'] . $downloadLink

.plist 中的链接是 HTTPS

<key>assets</key>
        <array>
            <dict>
                <key>kind</key>
                <string>software-package</string>
                <key>url</key>
                <string>https://app.ipa</string>
            </dict>
            <dict>
                <key>kind</key>
                <string>full-size-image</string>
                <key>needs-shine</key>
                <true/>
                <key>url</key>
                <string>https://image_512x512.png</string>
            </dict>
            <dict>
                <key>kind</key>
                <string>display-image</string>
                <key>needs-shine</key>
                <true/>
                <key>url</key>
                <string>https://image_57x57.png</string>
            </dict>
        </array>

但该应用无法安装。我总是收到消息“无法加载应用程序”

所有 URL 都可以通过 HTTP 和 HTTPS 访问。

XCode 显示应用日志

unknown securityd[2331]:CFReadStream 域:12 错误:8

我在这里做错了什么?

谢谢

【问题讨论】:

    标签: ipad enterprise over-the-air


    【解决方案1】:

    关于您如何尝试解决此问题的信息并不多,因此我只是有问题,而不是实际答案。如果任何问题的答案都是“否”,那么应该指出您的问题所在的区域。

    https://app.ipa 是您在 .plist 中使用的实际 URL 吗?如果是这样,我会尝试在其中使用完整的主机名和路径。

    https 站点是否有适当的签名有效证书,iOS 上的 Safari 无需与用户进行任何交互即可接受?如果没有尝试正确的证书。

    如果您检查服务器日志文件,您是否看到 .ipa 文件已从服务器下载?

    您是否尝试过使用 iTunes 安装 .ipa 文件,是否被接受?

    【讨论】:

    • 下载功能完全通过 HTTP。 https://app.ipa 只是一个例子。我确实使用带有 https 的完整域名。证书在桌面和下载上显示为绿色,在 iPad 上输入登录数据以进行 .htaccess 保护后,Safari 弹出消息“无法下载文件”。使用 iTunes 安装就像通过 HTTP 一样工作
    • 您能否将文本文件或其他内容放在 https 上,并验证 ipad 上的 Safari 是否可以通过 https 加载该文件,而不会出现任何证书错误或与用户进行任何其他交互,而不是询问用户名/密码?
    • 下载 test.txt 工作正常。输入用户名/密码后,文本文件显示在 Safari 中
    • 如果您检查服务器日志文件,您是否看到 .ipa 文件已从服务器下载? 我只在 access.log 和应用程序中看到 .plist图标显示在屏幕上,尝试加载并失败。无法解释..
    • https 服务器是否记录到不同的文件?如果真的根本没有日志条目,那么请尝试在服务器上使用诸如 wireshark 之类的工具,看看它是否甚至在尝试联系服务器。
    【解决方案2】:

    问题是 iPad 需要知道证书颁发机构。

    如果您使用 HTTPS 分发应用程序并且 CA 服务器是您自己的,您需要在 iPad 上安装证书。否则 iOS 会尝试下载它。

    您可以通过电子邮件将其发送到您的 iPad 或从 Keychain Access 程序创建一个 .pem 文件并将其托管在您的服务器上以进行安装。然后用 Safari 打开它,iOS 会要求你接受它。

    然后安装工作。但是要小心使用.htaccess,因为在安装过程中同时使用HTTPS和HTTP似乎会触发每个请求的登录名/密码,对于图像,.ipa和.plist是4,这真的很烦人。

    [编辑] 请记住,自从 Apple 推出 iOS 7.1 以来,您只需要使用 HTTPS 来引用 .plist 文件。

    请看这里:Enterprise app deployment doesn't work on iOS 7.1

    【讨论】:

    • 我不明白你所说的使用 .htaccess 文件是什么意思。我没有使用该文件,但仍然提示输入登录名/密码 4 次。你能解释一下为什么会这样吗?
    • 我没有提到托管这些文件的服务器需要身份验证。
    • 您可以在 Apache 的 .htaccess 文件中使用 HTTP 基本身份验证。但身份验证也可以在服务器配置本身中。也许虚拟主机配置设置为身份验证
    • 我有一个 tomcat 服务器,有 4 个端点提供这些文件。这些端点需要针对用户数据库的基本身份验证。它一次又一次地询问密码。我没有在 Apache 站点配置中设置任何类型的身份验证。
    • 它对 .plist 中的每个文件最多询问 3 或 4 次。这将是应用程序 .ipa,每个大小的图标,在我的 cas 2 .png 文件中。发出 3 次请求和 3 次登录以进入。遗憾的是,iOS 不存储登录凭据。您可以将 .htaccess 文件放在您提供 .plist 的目录中,然后将 Satisfy Any 放入其中:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多