html - 使用相对 URL 的 Over the Air iOS Adhoc Build

标签 html ios xml ad-hoc-distribution

我想在我自己的服务器上分发我的 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>

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

我的想法是这两个相对 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)”时,我会从设备上看到一个弹出窗口

最佳答案

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

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

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

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

关于html - 使用相对 URL 的 Over the Air iOS Adhoc Build,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15082109/

相关文章:

javascript - Jquery 菜单,如何在我制作的这个后面制作动画

iOS - 当全局计算发生时 UIViewControllers

ios - 如何在按钮上设置自定义指针效果(Objective-C)?

c# - 从 xpath 创建 SQL 数据库结构

XML文件编码格式 "utf-8"VS "UTF-8"?

javascript - 从加载的 WebView 中获取 HTML 代码

javascript - 无法将数据插入数组

javascript - jQuery 代码在链接到 html 时不起作用

ios - AVFoundation - 如何在捕获图像之前将闪光灯设置为自动/关闭

java - 我注意到 log4j2.xml 中某些属性前面的前缀 'sd:'——它们代表什么?