Ios 无线iphone应用程序分发-itms服务协议存在问题
我已经按照和其他一些博客的所有指示进行了操作。我已经存档了应用程序,制作了.plist和.ipa文件,将它们放在服务器上并链接到它们。我可以很好地安装配置文件。但当我点击链接安装应用程序(在iphone上的safari中)时,什么也没发生。没有错误消息。没有什么。这是链接的外观:Ios 无线iphone应用程序分发-itms服务协议存在问题,ios,Ios,我已经按照和其他一些博客的所有指示进行了操作。我已经存档了应用程序,制作了.plist和.ipa文件,将它们放在服务器上并链接到它们。我可以很好地安装配置文件。但当我点击链接安装应用程序(在iphone上的safari中)时,什么也没发生。没有错误消息。没有什么。这是链接的外观: <a href="itms-services://?action=download-manifest&url=http://mydomain.com/test/myApp.plist">Instal
<a href="itms-services://?action=download-manifest&url=http://mydomain.com/test/myApp.plist">Install the app</a>
你知道为什么这样不行吗?看来itms服务协议已经过时了。MIME类型很好(我可以指向地址栏中的plist文件,它显示为文本)。itms服务是一个标识符,apple/iphone将通过它来标识它应该验证证书并进行安装 要在安装ipa文件之前验证配置文件,它将连接到“ax.init.itunes.apple.com”和“ocsp.apple.com” 如果您正在使用任何内部网连接,请检查这些链接是否可访问?如果不是,则无法通过“空中传送”安装应用程序
&设备上的最低操作系统应为4.0。请确保所有URL都是完全限定的。包括png文件。当清单文件和应用程序归档文件的文件名中有空格时,我也有类似的症状。我删除了所有的空间,无线安装对我很有效。您的清单似乎没有空间,所以您的应用程序文件可能有空间?请正确设置服务器的MIME设置 谷歌搜索你会找到正确的方法
我使用的是IIS 6.0,正在加载index.html页面,但当用户从苹果设备(即iphone 4)点击.plist链接时,我不断收到“无法连接www.mywebsite.com”。除了添加MIME类型之外,解决方案是在.plist文件所在的位置共享Web共享,最重要的是:更改manifest.plist文件的安全访问权限。完全控制默认的windows用户似乎您这里有几个问题的指针,以便下次使用:从Xcode Organizer检查设备控制台,它通常包含有关失败的OTA分发的有用信息。我遇到的问题与您描述的完全相同,而我的问题是我错过了“http://“在url中。在我将此部分添加到.plist文件的url字段中后,一切正常。希望有帮助 我遇到了与上面相同的问题。在尝试了以上所有操作并失败后,我发现当我归档我的应用程序时,我没有在设置中输入应用程序URL,因此这个URL永远不会出现在我的plist文件中。查看plist文件时,请确保应用程序URL在其中。在使用临时设置配置文件分发应用程序时,我也遇到过类似的问题。我尝试删除旧的配置文件、生成新的配置文件、重新启动Xcode、清理和重建、检查URL路径名等。该应用程序将安装在某些设备上,但不会安装在其他设备上
对我来说,有效的方法是更改应用程序版本并将其构建为一个新的版本。我发现ios 6“无法使用index.html”来安装应用程序。通过将“index.html”更改为“dev.html”进行修复。希望能帮助别人就像以前很多人一样,我也遇到了这个守护进程的一个问题。在我的例子中,问题是plist文件的格式不正确。请确保该文件遵循文档中概述的确切模式:我同时尝试了一些,因此我不确定哪一个是好的 创建了一个通配符应用程序id(名称通配符,bunde标识符*),创建了此应用程序的配置文件,并使用此配置文件签署了ipa 在配置门户上注册了一个设备
将我链接app dev.html而不是index.html的文件命名为正确的解决方案是将空格替换为“+”(plus)为…url=。。。表示为查询字符串参数,为URL编码时,应将其编码为表单数据参数 从这里开始: 控件名称和值被转义。空格字符被“+”替换,然后保留字符被转义,如[RFC1738]中所述 解决了我们在icenium.com开发过程中遇到的相同问题。
您可以在那里查看临时条款签名,看看它如何适用于名称中带有空格的项目。答案其实很简单:URL需要“双转义”,即 这是因为该值未被转换为
https://example.com/My%20App.plist
在被视为另一个URL之前。这将被example.com
上的服务器取消到空间
解析器不专门处理+:…&url=https://.../test/a+b
导致Apache日志中出现“GET/test/a+bhttp/1.1”
。(假设所有查询字符串都是application/x-www-form-urlencoded
,这是不明智的;这只是在HTML中标准化的。)
顺便说一句,itms服务似乎使用+[nsurlWithString:
来验证url:url=…/My%20App.plist
不会产生任何请求,因为[nsurlWithString:@”https://.../My App.plist“]
返回nil
。然而,NSURL中有一个长期存在的错误:它将在结尾转义一个无效(BMP)字符,而不是返回nil。我的测试用例
会导致日志“GET/test/url=…/test/%3c
(这绝对是无效的HTTP!)
导致设备出错,但没有日志消息(因为Apache将其视为格式错误的请求)url=…/test/%0a
在日志“GET/test/\r HTTP/1.1”中显示结果url=…/test/%0d
$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'];
另外,确保mime类型返回为
application/xml
如果您是通过电子邮件发送链接,则不能使用
$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'];