iOS企业部署:点击itms-services链接会导致"无法连接到[domain]"错误

时间:2014-08-29 06:21:16

标签: ios iphone ssl plist ipa

为了部署企业iOS应用,我创建了以下链接:

未编码版本(便于阅读):

<a href="itms-services://?action=download-manifest&url=https://example.com/api/distribution/ios?token=abc123">Download</a>

编码版本:

<a href="itms-services://?action=download-manifest&url=https%3A%2F%2Fexample.com%2Fapi%2Fdistribution%2Fios%3Ftoken%3Dabc123">Download</a>

链接已正确编码,如herehere所述。

假设用户的令牌有效,则通过SSL返回.plist文件,如here所述。 .ipa文件中引用的.plist文件的URL是即时生成的。以下是.plist文件的样子:

<plist version="1.0">
<dict>
    <key>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>TEMP_URL</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>org.cocos2d.ready-ios</string>
                <key>bundle-version</key>
                <string>0.0.1</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>Ready</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

据我所知,我们的GoDaddy SSL证书似乎位于trusted list

然而,尽管如此,在点击链接并等待片刻之后,我收到以下错误:

Cannot connect to [domain]

点击链接后,这是iPhone控制台输出:

Aug 29 07:30:56 My-iPhone wifid[15] <Notice>: WiFi:[431015456.799163]: Client itunesstored set type to background application
Aug 29 07:30:56 My-iPhone wifid[15] <Notice>: WiFi:[431015456.804319]: BG Application: Not Present, BG Daemon: Present. Daemons: apsd networkd itunesstored 
Aug 29 07:30:56 My-iPhone wifid[15] <Notice>: WiFi:[431015456.806066]: Already connected to [Company Name].
Aug 29 07:30:58 My-iPhone itunesstored[100] <Warning>: Could not load download manifest with underlying error: Error Domain=SSErrorDomain Code=2 "Cannot connect to iTunes Store" UserInfo=0x15788270 {NSLocalizedDescription=Cannot connect to iTunes Store}
Aug 29 07:31:03 My-iPhone wifid[15] <Notice>: WiFi:[431015463.925398]: Client itunesstored set type to normal application
Aug 29 07:31:03 My-iPhone wifid[15] <Notice>: WiFi:[431015463.928745]: BG Application: Not Present, BG Daemon: Present. Daemons: apsd networkd 

有什么想法吗?

8 个答案:

答案 0 :(得分:7)

我遇到了这个问题,这里没有任何记录在案的解决方案,或者在其他答案中都没有为我工作。使用正确的SSL证书,可以在目标设备上的safari中加载plist,没有任何问题。但是,尝试使用&#34; itms-services://...&#34进行安装;链接总是会失败&#34;无法连接到[域名]&#34;错误。

问题是未在Web服务器上配置中间 SSL证书。 Web浏览器没有问题,SSL有效,但将设备连接到Mac,并通过XCode中的设备面板查看日志显示以下错误:

iPhone itunesstored[83] <Warning>: Could not load download manifest with underlying error: Error Domain=NSURLErrorDomain Code=-1202 "Cannot connect to the Store".... "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “[mydomain]”, which could put your confidential information at risk."

在Apache上安装中间SSL证书解决了这个问题。

答案 1 :(得分:5)

我有一段时间这样的问题,这让我发疯了。我得到了弹出窗口&#34;无法连接到[域名]&#34;我在日志中看到了同样的错误&#34;无法连接到iTunes Store。&#34;

最初的问题是我失踪了&#34;&gt;&#34;在我的.plist xml文件中。

但我修复了失踪的&#34;&gt;&#34;它在另一个ipad上工作。那么,它应该在原来的ipad上运行,对吗?好吧,不,因为带有拼写错误的坏人必须仍然在ipad的缓存中。

因此,修复方法是重命名.plist文件,或者关闭并重新启动&#34; ipad,或者找一些其他方法来清除你错误的plist文件的ipad缓存。

答案 2 :(得分:2)

检查TEMP_URL的URL链接值上的任何尾部斜杠并将其删除。如果您在浏览器上使用尾部斜杠测试URL,它将毫无问题地下载。在plist中它会失败。

答案 3 :(得分:2)

不确定这会对原始海报有所帮助,因为我不知道itms-services如何运作,但它可能有助于其他人看到&#34;无法连接到[域名]&#34;错误。

我们尝试通过Safari安装企业部署并不断看到此错误。 plist很好,如果我们直接输入url,它指向的ipa文件会下载。但是我们意识到我们正在通过http进行第一次(预安装)连接。将此更改为https允许安装按预期进行。

答案 4 :(得分:2)

我收到同样的错误。

就我而言,无法访问“.plist”。

我的决心是将相应的mime-types添加到由Internet Information Services(IIS)托管的网站。

即“.ipa”和“.plist”。

enter image description here

答案 5 :(得分:1)

我们遇到同样的问题,因为设备的内部日期设置为 有效日期范围。 (1970年1月1日)

无效日期也会使ssl证书无效,7.1+设备需要有效的https连接才能安装企业应用程序。

我们通过将设备日期更改为当前日期来解决此问题。

答案 6 :(得分:1)

如果你已经尝试了其他所有内容并仍然收到&#34;无法连接到[域名]&#34;错误,请确保.plist中指向图片的网址以&#34; .jpg&#34;结尾。或&#34; .png&#34;。如果这是动态生成的图像,您可以创建一个以这些扩展名之一结束的特殊路径。

答案 7 :(得分:0)

就我而言,.ipa 的文件名中有空格

删除后,问题就解决了。