Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无线iphone应用程序分发-itms服务协议存在问题_Ios - Fatal编程技术网

Ios 无线iphone应用程序分发-itms服务协议存在问题

Ios 无线iphone应用程序分发-itms服务协议存在问题,ios,Ios,我已经按照和其他一些博客的所有指示进行了操作。我已经存档了应用程序,制作了.plist和.ipa文件,将它们放在服务器上并链接到它们。我可以很好地安装配置文件。但当我点击链接安装应用程序(在iphone上的safari中)时,什么也没发生。没有错误消息。没有什么。这是链接的外观: <a href="itms-services://?action=download-manifest&url=http://mydomain.com/test/myApp.plist">Instal

我已经按照和其他一些博客的所有指示进行了操作。我已经存档了应用程序,制作了.plist和.ipa文件,将它们放在服务器上并链接到它们。我可以很好地安装配置文件。但当我点击链接安装应用程序(在iphone上的safari中)时,什么也没发生。没有错误消息。没有什么。这是链接的外观:

<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。我的测试用例

  • url=…/test/%3c
    会导致日志“GET/test/(这绝对是无效的HTTP!)
  • url=…/test/%0a
    导致设备出错,但没有日志消息(因为Apache将其视为格式错误的请求)
  • url=…/test/%0d
    在日志“GET/test/\r HTTP/1.1”中显示结果

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

另外,确保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'];