无线iPhone应用程序分发 - itms-services协议存在问题

24
我已经按照Apple和其他博客posts的所有指示进行操作。 我已经归档了应用程序,制作了.plist和.ipa文件,并将它们放在服务器上并链接到它们。 我可以很好地安装配置文件。 但是,当我在iPhone的Safari中点击安装应用程序的链接时,什么也没有发生。 没有错误消息。 什么都没有。 链接如下:
<a href="itms-services://?action=download-manifest&url=http://mydomain.com/test/myApp.plist">Install the app</a>

你知道为什么这个不起作用吗?看起来itms-services协议已经失效了。MIME类型没问题(我可以在地址栏中指向plist文件并将其显示为文本)。


手机是否有iOS 4+系统?应用程序是否可以通过iTunes(直接连接)安装在手机上? - user467105
这不是一个直接的答案,但我会建议使用TestFlight,它是一个极好的、免费的服务,可以处理所有相关事项等等。我和很多开发者朋友和同事都在使用它,并且我强烈推荐它。我相信在某个时候他们会开始收费,或者也许会提供一些附加服务,但它非常有帮助,我肯定会乐意支付。http://testflightapp.com - Matthew Frederick
1
嗨Sol,你解决了吗?我也遇到了同样的问题!你能帮我吗?我已经添加了.plist和.ipa文件的MIME类型,但仍然不起作用! - Paresh Masani
17个回答

0
正确的解决方案是将空格替换为“+”(加号),因为...url=...表示查询字符串参数,当编码为URL时,它们应该被编码为表单数据参数。
从这里W3.org - HTML文档中的表单开始:
“控件名称和值已转义。空格字符被替换为“+”,然后保留字符按[RFC1738]中描述的进行转义。”
附言:这解决了我们在icenium.com开发过程中遇到的相同问题。您可以在那里检查AdHoc提供签名,并查看其如何适用于名称中带有空格的项目。

很抱歉告诉你,Jordan,在iOS 5.0.1中这个方法行不通。用“+”替换URL中的空格会返回一个服务器无法找到的错误。在iOS 6.1中,同样的情况也出现了。 - Alex Zavatone
我检查了代码,看起来我们使用 + 但实现了自定义处理程序,URL 如下:https://server.com/plist?pn=a+app+name+with+space最后再次对 URL 进行编码,得到以下内容:itms-services://?action=download-manifest&url=https%3A%2F%2Fserver.com%2Fplist%3Fpn%3Da%2Bapp%2Bname%2Bwith%2Bspace(我们在处理程序中设置 ContentType 为 text/plain,但 text/xml 或许更好,我们将 .ipa 作为 ContentType:application/octet-stream 提供) - Jordan
在 plist 文件中,URL 可以使用 %20 进行空格转义。 <string>https://server.com/folder%20with%20space/app%20project%20with%20space.ipa</string> - Jordan
1
哇,谢谢你。我会在我们这边进行测试。我同意 pList 中的 URL 可以进行空格转义,但是在我的测试中,即使没有转义空格字符也可以正常工作。这需要被记录下来。太疯狂了。 - Alex Zavatone

0

我同时尝试了一些方法,所以不确定哪一个是最好的。

创建了一个通配符应用程序ID(名称为通配符,包标识符为*),为此应用程序创建了一个配置文件,并使用此配置文件签署了ipa文件。

在预配门户上注册了一个设备。

将链接应用程序的文件命名为dev.html而不是index.html。


0
我发现在 iOS 6 上安装应用程序时出现“无法使用 index.html”。通过将“index.html”更改为“dev.html”进行修复。希望能够帮助到某些人。

0

当我使用AdHoc配置文件分发我的应用程序时,遇到了类似的问题。我尝试删除旧配置文件、生成新配置文件、重新启动Xcode、清理和重建、检查URL路径名称等等。该应用程序可以安装在某些设备上,但在其他设备上无法安装。

对我有效的方法是将应用程序版本和构建更改为较新的数字。


0
我遇到了你描述的完全相同的问题,问题是我的 URL 地址中缺少了 "http://"。在我将该部分添加到 .plist 文件中的 URL 字段后,一切都正常工作了。希望能对你有所帮助!

-1

如果您正在从电子邮件发送链接,则无法在电子邮件中使用HTML格式。您必须使用“富文本”格式。

不知道为什么,但至少在Outlook中是这样的。


-1

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