10

我想在我自己的服务器上分发我的 Beta Adhoc 构建。Apple 用于无线安装应用程序的逻辑中似乎有 2 个重要的 URL。

第一个 url 在 HTML 中:

<p><a href="itms-services://?action=download-manifest&url=http://www.example.com.cn/path/to/plist/theplist.plist">Adhoc Build</a></p> 

第二个在那个 plist 文件中

<dict>
    <key>kind</key>
    <string>software-package</string>
    <key>url</key>
    <string>http://www.example.com.cn/path/to/binary/app.ipa</string>
</dict>

这些网址可以是相对的吗?我希望相同的 HTML 和 XML 文件在我的开发机器(MAMP 服务器)上工作,首先测试我可以下载二进制文件,然后将临时构建发布给我的 Web 服务器(NGINX)上的测试人员。目前我只能让它与绝对网址一起使用。

我的想法是这两个相对 URL 应该可以工作

<p><a href="itms-services://?action=download-manifest&url=/path/to/plist/theplist.plist">Adhoc Build</a></p> 

<dict>
    <key>kind</key>
    <string>software-package</string>
    <key>url</key>
    <string>/path/to/binary/app.ipa</string>
</dict>

当我使用这些相对 URL 时,当我单击“无法连接到(null)”时,我会从设备弹出一个弹出窗口

4

1 回答 1

9

对于 HTTP 或 HTTPS 请求,Web 浏览器可以处理相对 URL 以填充缺失的详细信息。.plist 文件的链接是自定义 URL 方案。Safari 不知道 URL 的格式,因此它不会填写任何缺失的详细信息。因此该链接必须是绝对 URL。Safari 只是寻找可以处理 itms-services URL 方案的东西,并将整个 URL 发送到该方案。

.ipa 文件的链接也必须是绝对的,不是因为处理 itms-services URL 方案的程序没有足够的信息,而是因为该程序没有运行内置的逻辑来处理 URL。我猜苹果更喜欢保持代码简单可靠,而不是添加相对 URL 功能。

您拥有的一种解决方案是为您的 HTML 和 PLIST 文件编写某种服务器端处理器,以基于服务器生成具有绝对 URL 的重写文件。您选择如何完成此操作将取决于您的服务器的配置。

另一种解决方案是将 .plist 和 .ipa 保留在主网络服务器上,使用该服务器的绝对 URL,并在两台服务器上使用您的 HTML 文件。

于 2013-09-17T19:48:18.317 回答