iOS分发 - itms-services协议链接中的plist参数

15

我想在itms-services链接中传递userid和password,以便可以访问受保护的plist。

为了澄清,在以下链接中,由于需要输入userid和password才能访问plist,因此无法直接访问该plist。

<a href="itms-services://?action=download-manifest&url=http://example.com/app.plist">

目前上述链接出错

无法连接到example.com

4个回答

27

我正在将IPA和PLIST安装在Windows IIS服务器上。

为了使iPad能够下载应用程序,我必须向IIS服务器添加.ipa和.plist的MIME类型。

对于IIS,请打开IIS管理器。右键单击“服务器(本地计算机)”,选择“属性”,点击“MIME类型”,然后点击“新建...”

添加以下MIME类型:

.IPA   - application/octet-stream 
.PLIST -  text/plain.

这些MIME类型对于其他Web服务器平台也非常有用。谢谢。 - John Sibly
你需要重新启动服务器才能使其识别新的 MIME 类型吗? - Richard
如果您无法更改服务器的MIME类型,但很幸运在那里有PHP,请检查我的答案。 - cregox
@Richard 我不需要重新启动服务器(IIS 8)。 - pinki

3

您需要确保可以访问.plist和.ipa文件。我们对这些文件加了身份验证cookie保护,导致iTunes无法安装,出现了“无法连接到mydomain.com”的错误。最终,通过去除安全保护才成功安装。


2

如果您有兴趣动态生成plist文件,以下是一个PHP示例:

$appUrl='itms-services://?action=download-manifest&url=http://server/iOSpList.php?'.
                'url%3D'.$app['url'].
                '%26bundle%3D'.$app['bundle'].
                '%26version%3D'.$app['version'].
                '%26name%3D'.$app['name'];

此外,我认为 .plist 文件的 MIME 类型应该是 application/xml

1

我的服务器上安装了PHP,但我无法访问服务器的MIME配置。所以我做了以下操作:

app.plist.php

<?php
header('Content-type: application/xml');

$file = fopen("app.plist", "r");
while(!feof($file)){
    $line = fgets($file);
    print str_replace(".ipa", ".ipa.php", $line);
}
fclose($file);
?>

app.ipa.php

<?php
header('Content-type: application/octet-stream');

$file = fopen("app.ipa", "r");
while(!feof($file)){
    $line = fgets($file);
    print $line;
}
fclose($file);
?>

由于某些原因,使用 readfile 没有起作用。但是这个可以。

<a href="itms-services://?action=download-manifest&url=http://localhost/AppDistribution/app.plist">安装应用程序</a>将如何与上面的php脚本链接?我已经设置了HTML链接。我还创建了上述2个php文件。但不确定如何将HTML链接连接到php脚本? - DShah
只需添加 .php,即可引用该文件。在您的情况下:<a href="itms-services://?action=download-manifest&url=http://localhost/AppDistribu‌​tion/app.plist.php">安装应用程序</a> - cregox

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