iOS 应用程序:企业 Distribution/Deployment - 缺少 app.plist

iOS App: Enterprise Distribution/Deployment - Missing app.plist

我在部署企业 iOS 应用程序时遇到问题。

这里是从 Web 服务下载应用程序的示例 link:'itms-services://?action=download-manifest&url=https://location.company.com/sites/mobile/Files/Mobile/deploy/app.plist'。

我在同一网络服务器上托管了 html 和 ipa 文件。

当我尝试从服务器下载应用程序时,出现错误:

“Cannot connect to Server”

Xcode中的设备日志显示,如下日志:
TOM-iPhone itunesstored[106]:无法加载下载清单,并出现潜在错误:错误域=SSErrorDomain 代码=2 "Cannot connect to iTunes Store" UserInfo={NSLocalizedDescription=无法连接到 iTunes Store}

提示以下位置缺少app.plist错误 https://location.company.com/sites/mobile/Files/Mobile/deploy/app.plist

How can I create new app plist?

Here 我看到了示例 plist,但如何为我的应用程序创建 plist?

plist 文件只是一个 xml 文件。您可以复制 xml/plist 并替换值(软件包、全尺寸图像、显示图像等)。

最重要的部分是软件包位置:

<dict>
    <key>kind</key>
    <string>software-package</string>
    <key>url</key>
    <string><!-- Your IPA file location here --></string>
</dict>

其他字段主要是元数据。

要通过 Xcode 创建 plist 文件,请参阅 Apple 文档:https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/DistributingEnterpriseProgramApps/DistributingEnterpriseProgramApps.html

基本上,如果您要通过 Web 服务器像这样分发 OTA(无线),您必须拥有清单文件

app.plist 是清单文件

清单是一个 XML-based 属性 列表(.plist 扩展名),它应该包含以下六个 key/value 对:

  • URL

a fully-qualified URL 指向 .ipa 文件

  • display-image

a fully-qualified URL 指向下载和安装期间使用的 57×57 像素(iPad 为 72x72)PNG 图标

  • full-size-image

a fully-qualified URL 指向代表 iTunes 应用程序的 512×512 像素 PNG 图像

  • bundle-identifier

应用程序的标准应用程序标识符字符串,在应用程序的 .plist 文件中指定

  • bundle-version

应用程序的当前捆绑包版本字符串,如应用程序的 .plist 文件

  • 标题

一个human-readable应用程序名称

使用Xcode

  • 在XCODE档案组织者,selectarchive 用于制作 ipa

  • 单击导出 按钮,select 为企业部署保存, 然后单击下一步。

Finder 显示具有 .ipa 扩展名的导出文件。

  • 查看构建选项,然后单击“下一步”。 检查 包括 over-the-air 安装清单

  • 在出现的分发清单信息对话框中输入有关您的网络服务器的详细信息,然后单击“导出”。

  • 输入 iOS 应用程序文件的文件名和位置,然后单击“导出”。

您必须将 PLIST 重命名为 app.plist 并复制到

https://location.company.com/sites/mobile/Files/Mobile/deploy/

自己动手

如果您不想经历繁琐的 xcode 过程,那么这是最简单的方法

这是示例清单文件内容,您可以按照我之前解释的键编辑它的内容并将其保存为 app.plist 并复制到

https://location.company.com/sites/mobile/Files/Mobile/deploy/

 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <!-- array of downloads. -->
   <key>items</key>
   <array>
       <dict>
           <!-- an array of assets to download -->
           <key>assets</key>
           <array>
               <!-- software-package: the ipa to install. -->
               <dict>
                   <!-- required.  the asset kind. -->
                   <key>kind</key>
                   <string>software-package</string>
                   <key>url</key>
                   <string>http://www.example.com/apps/foo.ipa</string>
               </dict>
               <!-- display-image: the icon to display during download. -->
               <dict>
                   <key>kind</key>
                   <string>display-image</string>
                   <!-- optional. icon needs shine effect applied. -->
                   <key>needs-shine</key>
                   <true/>
                   <key>url</key>
                   <string>http://www.example.com/image.57×57.png</string>
               </dict>
               <!-- full-size-image: the large 512×512 icon used by iTunes. -->
               <dict>
                   <key>kind</key>
                   <string>full-size-image</string>
                              <!-- optional. icon needs shine effect applied. -->
                   <key>needs-shine</key>
                   <true/>
                   <key>url</key>
                   <string>http://www.example.com/image.512×512.png</string>
               </dict>
           </array><key>metadata</key>
           <dict>
               <!-- required -->
               <key>bundle-identifier</key>
               <string>com.example.fooapp</string>
               <!-- optional (software only) -->
               <key>bundle-version</key>
               <string>1.0</string>
               <!-- required. the download kind. -->
               <key>kind</key>
               <string>software</string>
               <!-- optional. displayed during download; -->
               <!-- typically company name -->
               <key>subtitle</key>
               <string>Apple</string>
               <!-- required. the title to display during the download. -->
               <key>title</key>
               <string>Example Corporate App</string>
           </dict>
       </dict>
   </array>
</dict>
</plist>

P.S

确保您的网站配置为在 Web 服务器中支持以下两种 MIME 类型

  • .ipa application/octet-stream

  • .plist text/xml

执行此操作后,如果您在安装应用程序时遇到问题,请参考此link它会对您有所帮助

希望这对您有所帮助:)