使用相对URL进行iOS Adhoc无线安装包的OTA安装

10

我想在自己的服务器上分发我的Beta Adhoc构建版本。苹果用于通过空中安装应用程序的逻辑中似乎有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服务器)上能够正常工作,首先测试我是否可以下载二进制文件,然后将adhoc构建发布到我的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)”。

1个回答

9

使用HTTP或HTTPS请求时,浏览器可以处理相对URL以填充缺失的细节。.plist文件的链接是自定义URL方案。Safari不知道URL的格式,因此不会填充任何缺失的细节。因此,该链接必须是绝对URL。Safari只是寻找能够处理itms-services URL方案的内容,并将整个URL发送到该方案。

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

您有一个解决方案,就是编写某种服务器端处理器来生成基于服务器的绝对URL的重写文件,其中包括HTML和PLIST文件。如何完成这项工作取决于您的服务器配置。

另一个解决方案是将.plist和.ipa文件保留在主Web服务器上,使用指向该服务器的绝对URL,并在两个服务器上处理您的HTML文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接