gpt4 book ai didi

ios - iOS Enterprise OTA分发版无法下载应用程序

转载 作者:IT王子 更新时间:2023-10-29 07:47:20 24 4
gpt4 key购买 nike

我创建了一个iOS应用,并希望通过无线方式分发。我遵循了此指南:

http://help.apple.com/iosdeployment-apps/mac/1.1/?lang=en-us#app43ad77ea

该应用程序已使用企业证书签名,并包含分发设置配置文件。

当我尝试将应用程序下载到ipad上(使用本指南中介绍的技术)时,屏幕上出现带有我的下载图标的方形图标,名称为“Waiting ...”,然后第二个名称更改为我的实际的应用程序名称,然后再过一秒钟后,我收到错误消息:

Unable to Download Application

"Your Application" could not be downloaded at this time.



在指南中,有三个故障排除提示:

if wireless app distribution fails with an “unable to download” message, check the following:

Make sure the app is signed correctly. Test it by installing it on a device using iPhone Configuration Utility or Apple Configurator, and see if any errors occur.

Make sure the link to the manifest file is correct and the manifest file is accessible to web users.

Make sure the URL to the .ipa file (in the manifest file) is correct and the .ipa file is accessible to web users.



我检查了所有三件事,它们都很好。

还有什么可能导致我的下载问题?

最佳答案

正如alexey所提到的,太多原因会导致该消息。苹果将​​其用作“捕获所有错误”。

您可以通过控制台对其进行诊断。将设备连接到桌面,然后从 XCode的管理器(仅限Mac)或 iPhone Configuration Utility (Mac和Windows)访问它。但...

这不是那么简单! :-(

控制台可能还远远不够。有时那里没有相关的消息。

然后,最后的手段是following a checklist。再次从零开始。有很多out there ...但是,此刻,下面是我关于“空中下载”发行的通用且不详细的 list 。


  • 建立发行版本-这是最复杂的部分,始终在网络上完成,Apple一直在更改步骤。通常,您需要一个证书,一个标识符和供应配置文件。几乎总是需要列出设备。我当前的选择是“分发->内部”。

    附注:如果您确实要列出设备,请确保UDID正确。这里报告了许多问题。
  • 在Project-> Build Settings下设置配置文件-从XCode 5开始,事情发生了变化。除了使用身份标识进行代码签名外,您还可以清除所有内容并在* Code Signing-> * Provisioning Profile 下进行设置。身份应自动更改为“自动”。也不再需要从步骤1中手动下载文件并进行安装。 XCode现在对此进行管理。

  • 存档-在Xcode 5中,不再需要“为存档而构建”。只需存档即可。接下来应该显示在组织者上,如果这是一个大项目,将需要一些时间。在此步骤中可能会出现许多错误,但是它们几乎总是与代码编译有关,与OTA无关。
  • 部署-现在在管理器->存档中,选择适当的存档(应该已经选择了最新的存档),单击“分发”,然后保存为企业或临时部署。现在可能会很等待。保存文件时,可以选择“保存以供企业分发”。那是一个完全误导的名字。它的真正作用是创建 plist 文件。如果您已经有一个,那很好。您甚至可以手动编辑它,这通常更好。步骤(5)需要 plist 。这是一个很好的:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <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>http://example.com/app.ipa</string>
    </dict>
    <dict>
    <key>kind</key>
    <string>full-size-image</string>
    <key>needs-shine</key>
    <false/>
    <key>url</key>
    <string>http://example.com/FullSizeImage.png</string>
    </dict>
    <dict>
    <key>kind</key>
    <string>display-image</string>
    <key>needs-shine</key>
    <false/>
    <key>url</key>
    <string>http://example.com/Icon.png</string>
    </dict>
    </array>
    <key>metadata</key>
    <dict>
    <key>bundle-identifier</key>
    <string>com.example.app</string>
    <key>kind</key>
    <string>software</string>
    <key>subtitle</key>
    <string>for iOS</string>
    <key>title</key>
    <string>My App</string>
    </dict>
    </dict>
    </array>
    </dict>
    </plist>
  • 分发-如果要使用XCode或iPhone Configuration Utility安装它,请跳过此步骤。你完成了。这是,放在网站上的文件中。 “简单地”添加带有和href 链接的HTML页面,例如:
     itms-services://?action=download-manifest&url=http://example.com/app.plist

    不幸的是,处理Web服务器从未如此简单。 check the server mime-type也是如此!如果您的服务器支持php,我已经制作了几个PHP文件来处理它们。只需保持文件原样(plist,html和ipa),并使用链接到app.plist.php 即可:

    app.plist.php

    $file = fopen("app.plist", "r");
    while(!feof($file)){
    $line = fgets($file);
    print str_replace(".ipa", ".ipa.php", $line);
    }
    fclose($file);
    ?>

    app.ipa.php
    <?php
    header('Content-type: application/octet-stream');

    $file = fopen("app.ipa", "r");
    while(!feof($file)){
    $line = fgets($file);
    print $line;
    }
    fclose($file);
    ?>
  • 验证-确保 Assets 数组中列出的所有文件均可下载。如果这些文件中的任何一个返回404或类似的字符(包括图标),则整个安装将失败。您必须(A)使这些文件可用,或者(B)从plist中删除那些丢失的条目。图标条目对于下载工作而言不是必需的。

    这是一个没有图标的plist示例:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <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>http://example.com/app.ipa</string>
    </dict>
    </array>
    <key>metadata</key>
    <dict>
    <key>bundle-identifier</key>
    <string>com.example.app</string>
    <key>kind</key>
    <string>software</string>
    <key>subtitle</key>
    <string>for iOS</string>
    <key>title</key>
    <string>My App</string>
    </dict>
    </dict>
    </array>
    </dict>
    </plist>

  • 文件示例是 list 中非常重要的一部分。他们必须是100%正确的。

    仔细检查plist和html文件!

    附注:我正在写此答案,因为就我而言,这是.plist文件上错误链接的“简单”问题。因此,很难诊断。好吧,只有执行此 list 才能发现错误!它指向的是“another-app.ipa”而不是“app.ipa”!

    关于ios - iOS Enterprise OTA分发版无法下载应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13167915/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com