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
不起作用。但确实如此。
【讨论】:
<a href="itms-services://?action=download-manifest&url=http://localhost/AppDistribution/app.plist">Install App</a>
如何与上面的php脚本链接?我有设置 html 链接。我还创建了上面 2 个 php 文件。但不确定如何将 html 链接连接到 php 脚本?
只需在此处添加.php
即可引用该文件。在你的情况下:<a href="itms-services://?action=download-manifest&url=http://localhost/AppDistribution/app.plist.php">Install App</a>
以上是关于iOS 分发 - plist 的 itms-services 协议链接中的参数的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2017 Info.plist 在选项卡更改后丢失分发目标