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

Posted

技术标签:

【中文标题】iOS 分发 - plist 的 itms-services 协议链接中的参数【英文标题】:iOS distribution - parameters in itms-services protocol link for plist 【发布时间】:2012-02-11 11:43:34 【问题描述】:

我想在 itms-services 链接中传递用户 ID 和密码,以便可以访问受保护的 plist。

为了澄清,在以下链接中,plist 不能直接访问,因为访问需要输入用户名和密码才能访问 plist。

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

目前上述链接报错

无法连接到 example.com

【问题讨论】:

【参考方案1】:

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

我必须将 .ipa 和 .plist 的 MIME 类型添加到 IIS 服务器,以便 iPad 能够下载应用程序。

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

添加以下 MIME 类型:

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

【讨论】:

这些 mime 类型对于其他 Web 服务器平台也很有用。谢谢 您是否必须重新启动服务器才能获取新的 MIME 类型? 如果您无法更改服务器 mime 类型,请查看我的答案,但您很幸运有 php @Richard 我不必重新启动服务器(IIS 8)。【参考方案2】:

您需要确保可以访问 .plist 和 .ipa。我们对文件进行了身份验证 cookie 保护,iTune 无法安装,完全相同的错误“无法连接到 mydomain.com”。它终于通过删除安全保护起作用了。

【讨论】:

【参考方案3】:

对于任何对动态生成 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.

【讨论】:

【参考方案4】:

我的服务器上有 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 不起作用。但确实如此。

【讨论】:

&lt;a href="itms-services://?action=download-manifest&amp;url=http://localhost/AppDistribution/app.plist"&gt;Install App&lt;/a&gt;如何与上面的php脚本链接?我有设置 html 链接。我还创建了上面 2 个 php 文件。但不确定如何将 html 链接连接到 php 脚本? 只需在此处添加.php 即可引用该文件。在你的情况下:&lt;a href="itms-services://?action=download-manifest&amp;url=http://localhost/AppDistribu‌​tion/app.plist.php"&gt;Install App&lt;/a&gt;

以上是关于iOS 分发 - plist 的 itms-services 协议链接中的参数的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2017 Info.plist 在选项卡更改后丢失分发目标

ios实现分发下载

iOS App苹果企业签分发 教程

iOS企业证书网页分发全过程具体解释(图文并茂史无前例的具体哦)

ios 8 添加临时分发

iOS IPA 网络分发延迟