iOS企业级应用分发 - 应用安装URL中哪些字符是合法的?

3
我一直在尝试实验,想找出“应用程序URL:”字段中哪些字符会阻止使用清单链接部署企业应用程序时触发OTA安装。
我正在尝试自动生成路径,但通常我们的文件名中会有特殊字符,而且似乎URL中的某些字符会完全阻止清单触发安装。
例如,如果您有一个空格字符,您不能用%20转义它并将%20放入应用程序URL中。如果这样做,不会抛出任何错误,并且itms-services://?action=download-manifest&url=操作会在没有消息的情况下失败。
例如,如果应用程序URL是: http://mydomain.com/my-app.ipa 那么清单文件的安装链接将是: itms-services://?action=download-manifest&url=http://mydomain.com/my-app.plist
而在my-app.pList中,将有以下条目: url http://mydomain.com/my-app.ipa 但是,如果将“-”替换为空格,则无法在应用程序URL中使用空格字符或转义的%20,即使您使用该字符在ipa和pList的“应用程序URL:”中创建了ipa。
  1. 是否已知有绕过此问题的方法?
  2. 是否有已知的字符列表,当在URL中使用时会导致OTA安装失败?
提前感谢。
2个回答

2

当我在plist文件中使用%20和在itms-services链接中使用%2520时,它对我有效。tc在这里的答案中提到了itms-services链接的“双重转义”技巧。


1

如我在这里所回答的那样,最简单的解决方案是将空格替换为“+”(加号),因为...url=...表示它是查询字符串参数,并且当编码为URL时,它们应该被编码为表单数据参数。

来自W3.org - HTML文档中的表单

“控件名称和值已转义。空格字符将被替换为'+',然后保留字符按[RFC1738]所述进行转义。”


很高兴知道。我尝试了%20,但失败了,现在将尝试使用+。感谢您抽出时间给予反馈。 - Alex Zavatone
很抱歉告诉你,Jordan,用加号替换空格是不行的。iOS 报告说找不到该 URL。 - Alex Zavatone
相关问题:另一种导致下载失败的方法是将清单放在HTTPS服务器上,并在下载页面的“特殊”URL中使用'httpz'进行地址定位。有任何关于这个的想法吗? - Craig

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