包装iOS手机应用

本文描述了Citrix Endpoint Management管理员如何包装第三方企业应用程序,以及开发人员如何包装ISV应用程序。如何包装iOS手机应用:

  • 使用MDX服务。有关详情,请参阅MDX服务
  • 使用MDX Toolkit,其中包括macOS图形界面工具和macOS命令行工具。macOS命令行工具有自定义选项,可以从脚本中引用,自动化应用程序包装过程,并允许您预置一些MDX策略。

包装后的应用程序的文件类型是.mdx。您将.mdx文件上传到端点管理控制台,在那里您可以配置端点管理存储强制执行的特定应用程序详细信息和策略设置。当用户登录时,应用程序就会出现在商店中。用户可以订阅、下载并在他们的设备上安装这款应用。

下图概述了从安装MDX Toolkit到测试移动生产力应用程序的应用程序包装步骤。相关主题在图下列出。

iOS应用的应用包装流程

关于第一点的详细信息,请参见:

关于第二条的详细信息,请参见:

重要的是:

确保用户设备更新了与用于包装应用程序的MDX Toolkit版本兼容的Secure Hub版本。否则,用户将看到有关不兼容的错误消息。有关详情,请参阅端点管理兼容性

通过Apple DEP部署iOS设备

注册Apple部署计划以利用Apple设备注册计划(DEP)。您可以在Citrix Endpoint Management中使用Apple DEP对iOS和macOS设备进行部署和管理。有关详细信息,包括如何注册Apple部署计划,请参阅通过Apple DEP部署iOS和macOS设备

创建配置文件

在物理iOS设备上运行的应用程序(不包括Apple App Store中的应用程序)必须使用配置文件和相应的分发证书进行签名。有两种类型的开发者程序用于分发:

  • iOS开发者计划(Ad Hoc)
  • iOS开发者企业计划。要包装应用程序,思杰建议使用企业程序。你可以从苹果网站

企业配置文件允许您在无限设备上运行应用程序。Ad Hoc配置文件允许您在多达100台设备上运行应用程序。

苹果不再支持使用通配符的应用程序id为新的企业帐户。如果您的企业帐户不支持通配符应用id,则必须创建多个显式应用id和配置文件,如下所示。

  1. 验证您拥有有效的iOS发布证书。

  2. 从Apple Enterprise Developer门户,为计划使用MDX Toolkit包装的每个应用程序创建一个显式的应用程序ID。一个可接受的App ID示例是:com.CompanyName.ProductName。

  3. 从Apple Enterprise Developer门户转到配置文件配置>分发并创建一个内部配置文件。对上一步中创建的每个App ID重复此步骤。

  4. 下载所有配置文件。

如果你的苹果企业账户支持通配符应用id,你可以继续使用通配符配置文件来包装应用。但是,如果您在后台使用Apple推送通知服务(apn)发送通知,则必须使用显式配置文件和应用ID。

要在其上安装MDX应用程序的任何设备都需要在该设备上安装配置文件。您可以使用电子邮件附件将配置文件分发到用户设备。用户可以通过点击附件在iOS设备上添加配置文件。

关于配置文件和分发证书的详细信息,请参见苹果开发者账户帮助

有关将配置文件部署到iOS设备以及处理过期配置文件的更多信息,请参阅配置文件设备策略

应用程序升级

重要的是:

在升级应用程序之前,请注意更改应用程序ID或使用部分通配符应用程序ID配置文件会如何影响应用程序升级。

  • 除非App ID发生改变,否则之前包装的应用将会升级。例如,如果将bundle ID从com.citrix.mail更改为com.example。邮件,没有升级路径。用户必须重新安装该应用程序。设备将该应用程序视为新应用程序。该应用程序的新版本和旧版本都可以驻留在设备上。
  • 如果您使用部分配置文件,例如com。xxxx,用包含com的bundle ID包装一个应用。citrix时,我们的建议如下:删除已安装的MDX封装的应用程序,并安装最新的MDX工具包。由于bundle ID从com.citrix.mail更改为com。例如,用户必须重新安装应用。
  • 当满足以下条件时,本地升级成功:如果应用被完整的通配符应用ID包装,并且新版本的应用具有与已安装的应用匹配的应用ID。

政策和移动生产力应用程序

注意:

MDX 10.7.5版本是支持包装移动生产力应用程序的最终版本。您不能使用MDX 10.7.10及以后的版本或MDX Service来包装移动生产力应用程序10.7.5或以后的版本。你必须从公共应用商店访问移动生产力应用。

Citrix提供了一组适用于所有移动生产力应用程序的通用默认策略,以及一组适用于某些移动生产力应用程序的特定策略。策略文件名基于bundle ID。默认情况下,Citrix Endpoint Management应用程序的策略文件名的形式是com.citrix.app_policy_metadata.xml,其中app是一个名称,例如“mail”。

如果你的苹果企业账户不支持通配符应用ID,请执行以下操作:在包装端点管理应用时,更改bundle ID中的公司标识符。例如,安全邮件的bundle ID是com.citrix.mail。将该标识符中的“citrix”替换为您的公司标识符。如果您的公司标识符是“example”,那么bundle ID就是com.example.mail。包装该应用程序时,策略文件名是com.example.mail_policy_metadata.xml。

为了确定应用于应用程序的策略文件,MDX Toolkit按照以下顺序查找文件,并使用它找到的第一个文件:

  1. 与bundle ID匹配的文件名,如前面示例中描述的com.example.mail_policy_metadata.xml。
  2. 与原始bundle ID匹配的文件名,例如com.citrix.mail_policy_metadata.xml。
  3. 与通用默认策略文件policy_metadata.xml匹配的文件名。

通过修改与bundle ID或原始bundle ID匹配的文件,为特定的Citrix Endpoint Management应用创建自己的策略默认值集。

企业应用程序包装使用图形界面

以下步骤描述了包装从Endpoint Management部署的企业应用程序的一般过程。ISV应用程序包装的一般过程描述在使用图形界面的ISV应用程序包装

重要的是:

在使用图形界面包装iOS应用程序之前,必须将私钥和证书安装在Mac的Keychain Access上。如果关联的分发证书没有将私钥安装到Keychain Access中,则图形界面不会预填充iOS分发证书列表。详细信息请参见本文后面的“Toolkit找不到分发证书时修复钥匙链”。

  1. 在使用工具包包装应用程序之前,请确保备份这些应用程序的原始版本,以便在需要时返回它们。

  2. 从iOS应用程序文件夹中启动MDX工具包,选择IT管理员,然后点击下一个

    MDX Toolkit部署选项

  3. 点击浏览,选择该文件,然后单击下一个

    MDX Toolkit选择部署文件

  4. 验证应用详情屏幕显示从应用程序获得的信息。根据需要,更改预填写的信息。可选地,指定最小和最大操作系统版本,并列出应用程序不允许运行的设备类型。您也可以在将应用上传至Citrix Endpoint Management后修改应用的详细信息。

    MDX Toolkit应用程序详细信息

  5. 创建思杰移动应用程序屏幕上,单击浏览,选择配置文件,并选择分发证书。如果“iOS Certificate”列表为空,请在安装MDX Toolkit的机器上修复密钥链。详细信息请参见本文后面的“Toolkit找不到分发证书时修复钥匙链”。

  6. 如果您选择了具有显式应用程序ID的配置文件,则该工具会提示您确认应用程序ID。例如,Citrix Endpoint Management应用程序的bundle ID是com.citrix.ProductName。您使用的配置文件必须包含您的公司标识符,而不是“citrix”。

    点击之后是的,点击创建

    MDX Toolkit应用程序ID提示

  7. 如果您选择了一个具有通配符应用ID的配置配置文件,该工具将显示可用应用ID的列表。如果没有列出要使用的应用程序ID,请选择不同的配置文件。选择应用ID后,单击创建

    MDX Toolkit应用程序ID提示通配符

  8. 该工具包让您知道何时创建了MDX包。要包装另一个应用程序,请单击重新开始

    MDX Toolkit成功消息

    该工具包将_iOS附加到包装后的iOS应用程序文件名的末尾。

企业iOS应用程序使用命令行包装

注意:

确保直接从应用供应商处获取第三方应用。从苹果商店下载的iOS应用程序是加密的,不能包装。

在使用工具包包装应用程序之前,请确保备份这些应用程序的原始版本,以便在需要时返回它们。

下面的例子展示了一个使用默认设置的基本应用程序包装命令。为您的特定系统修改粗体信息。后面的反斜杠表示命令继续到下一行。在运行命令之前请删除这些符号。

要执行这些命令,请在命令行中导航到/Applications/Citrix/MDXToolkit/目录。

一个基本的iOS包装命令行如下所示。

./CGAppCLPrepTool \ Wrap \ -Cert CERTIFICATE \ -Profile PROFILE \ -bundleID ID \ -in INPUT_FILE \ -out OUTPUT_FILE 

下面是这个命令行选项的示例。

./CGAppCLPrepTool \ Wrap \ -Cert " iPhone开发者:Joe Admin (12MMA4ASQB) " \ -Profile " team_profile. .mobileprovision“\ -bundleID”com.CompanyABC。Sample " \ -in " ~/Desktop/SampleApps/Sample。ipa " \ -out " ~/Desktop/SampleApps/Sample。mdx“< !——NeedCopy >

可以添加到上述命令中的选项示例包括:

-appName " Wrapped Sample app "

“这是我新包装的iOS应用。”

如果可能的话,这两个选项都默认为从应用程序读取的值。

有关选项的详细信息,请参见下面的命令选项。对于内联文档,使用-help选项。

命令选项

用命令

  • 帮助:显示该命令的帮助。
  • :必需的。要包装的应用程序的路径和文件名。
  • :可选的。生成的.mdx文件的路径和文件名。如果省略此选项,则该文件具有与输入文件相同的路径和文件名,并具有.mdx扩展名。
  • outBundle:生成.ipa文件上传到Intune时需要。生成的.ipa文件的路径和文件名。
  • 证书:必需的。用于对应用程序签名的证书的名称。
  • 简介:必需的。要用于签署应用程序的配置文件的名称。
  • bundleID:不支持通配符应用程序id的企业帐户必需。这个值是你的Apple bundle ID。MDX Toolkit将验证包ID和配置文件是否兼容。
  • 升级:此选项用于遗留应用程序,将被弃用。当您使用部分通配符配置文件时,用于就地升级。此选项确保新的二进制文件与以前的版本具有相同的权限。如果授权不匹配,用户从安全集线器升级失败。
  • 浏览器名称:可选的。App名称,尽可能从App中获取。
  • AppDesc:可选的。App描述,尽可能从App中获取。
  • MinPlatform:可选的。最小支持的平台版本。默认为空。
  • MaxPlatform:可选的。支持的最大平台版本。默认为空。
  • ExcludedDevices:可选的。不允许运行应用程序的设备类型列表。默认为空。
  • PolicyXML:可选的。替换XML策略定义文件和路径。默认为内置策略定义。例如:-policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml。具体操作请参见设置iOS应用的MDX策略。
  • useNetworkOnlylib:该选项使用仅限网络的轻量级MDX动态库版本包装应用程序。使用此选项包装的应用程序只能由Intune管理或以非托管方式运行。它不能被MDX管理。
  • 日志文件:可选的。日志文件名。
  • LogWriteLevel:可选的。日志级别,1到4。
  • LogDisplayLevel:可选的。标准输出的日志级别,0到4。

签署命令

  • 帮助:显示该命令的帮助。
  • :必需的。要包装的应用程序的路径和文件名。
  • :可选的。生成的.mdx文件的路径和文件名。如果省略此选项,则该文件具有与输入文件相同的路径和文件名,并具有.mdx扩展名。
  • 证书:必需的。用于对应用程序签名的证书的名称。
  • 简介:必需的。要用于签署应用程序的配置文件的名称。

setinfo命令

  • 帮助:显示该命令的帮助。
  • :必需的。待修改应用的路径和文件名。
  • :对于setinfo,输出路径或文件名必须不同于原始路径或文件名。
  • AppDesc:可选的。应用程序描述。如果未指定,则保持不变。
  • MinPlatform:可选的。支持的最小SDK级别。如果未指定,则保持不变。
  • MaxPlatform:可选的。支持的最大SDK级别。如果未指定,则保持不变。
  • ExcludedDevices:可选的。不允许运行应用程序的设备类型列表。如果未指定,则保持不变。
  • StoreURL:可选的。应用程序在应用商店中的URL。如果未指定,则保持不变。
  • PolicyXML:可选的。替换XML策略定义文件和路径。默认为内置策略定义。例如:-policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml。具体操作请参见设置iOS应用的MDX策略。

为iOS应用预设MDX策略

对于使用MDX Toolkit命令行工具包装的应用程序,您可以预设一些MDX策略。您还可以在添加应用程序时在Citrix Endpoint Management控制台中配置策略。

  1. 更新策略XML文件中的策略值。

    MDXToolkit安装程序创建了这个策略文件:Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    注意:

    iOS和Android的策略文件不同。要为这两个平台预设策略,必须更新它们各自的策略XML文件。

  2. 当你用命令行包装应用程序时,包括

    -policyxml /应用程序/ Citrix / MDXToolkit /数据/ policy_metadata.xml

识别iOS应用程序包装错误

如果您在包装iOS应用程序时遇到错误,您可以使用MDX Toolkit日志来识别错误。您必须具有管理员权限才能查看MDX Toolkit的日志。

运行MDX Toolkit时,工具会将日志文件保存到如下位置:“应用> Citrix > MDXToolkit >日志> Citrix.log”。默认情况下,工具在日志中保存警告和错误。

如果iOS应用程序出现错误,日志的末尾会出现一个带参数的命令行。您可以复制命令行并在Terminal中运行它。要做到这一点,在应用程序>实用程序,点击终端,并使用Mac命令行界面计算该命令。您可能需要参考应用程序要求来评估错误。

使用命令行工具运行包装过程时,可以在命令行中指定以下信息:日志文件位置、日志显示级别和日志写入级别。还可以在命令行中指定详细日志级别和不同的日志文件。

选择正确的配置文件

当你包装一个移动iOS应用时,你可能会收到一个警告,表明该应用已成功包装,但可能包含错误。如果您选择的配置文件与应用程序最初使用的配置文件不同,则可能发生错误。

MDX Toolkit可以提醒您有关某些配置文件问题。例如,你的应用程序可能需要以下一个或多个函数:

  • iCloud应用程序,允许使用iCloud数据存储为您的iOS应用程序
  • 使用Apple推送通知服务向iOS设备发送消息的推送通知
  • 特殊Keychain访问组其他应用程序访问Keychain项的权限

日志显示应用程序缺少的键和值对。对于每个键和值对,您可以决定是否要修复错误。如果不修复错误,应用程序可能无法正常运行。此外,根据键和值对,您需要检查是否可以修复您的配置文件。偶尔,您可能无法修复配置文件,并且可以发布带有缺陷的应用程序。

有关配置文件的详细信息,请参见苹果开发者网站

在Toolkit找不到分发证书时修复钥匙链

如果MDX Toolkit无法识别您的iOS发布证书,则可能是您的iCloud Keychain与运行MDX Toolkit的计算机上的Keychain之间存在问题。要修复您的本地钥匙链,请遵循以下步骤。

  1. 在Mac的“系统偏好设置”中,点击iCloud

  2. 清除Keychain复选框。

    此步骤将从iCloud中删除本地同步的钥匙链。

  3. 开放钥匙链访问,它位于应用程序文件夹中的实用程序文件夹中。

  4. 删除用于签署包装应用程序的iOS开发者证书。该证书通常是带有关联私钥的“iPhone Distribution: Company Name”证书。

  5. 从“钥匙链访问”菜单中,选择“钥匙链急救”。

  6. 在“钥匙扣急救”对话框中,轻按修复然后开始

  7. 修复完成后,轻拍验证然后开始

  8. 如果修复成功,请再次将iOS分发证书导入Keychain Access应用程序。

  9. 启动MDX Toolkit。iOS分发配置文件和iOS分发证书字段应该包含您的信息。

  10. 根据需要,将钥匙链重新同步到iCloud:在系统偏好中,点击iCloud,然后选择钥匙链复选框。

退出包含MDX App SDK的应用

如果你的应用已经使用Xcode内置了MDX app SDK,你需要用你的企业证书或配置文件退出应用。以下是的样本标志命令。

$ /Applications/Citrix/MDXToolkit/CGAppCLPrepTool Sign -help MDXToolkit命令行接口版本10.4.1.290 (Env:测试)2016-09-29 15:21:45.284 CGAppCLPrepTool [88453:5477658 ] --------------------------------------------------------- 签署命令  --------------------------------------------------------- CGAppCLPrepTool迹象——INPUTFILE治疗OUTPUTFILE cert证书资料概要cert证书= = >(必需)证书签署应用程序的名称和概要简介= = >(必需)配置概要文件的名称签署的应用程序——INPUTFILE = = >(要求)的名称输入app文件,ipa/mdx文件-out OUTPUTFILE ==>(可选)输出app的名称,ipa(如果输入ipa)/mdx文件-upgrade ==>(可选)保留本地升级功能(不建议新应用使用)---------------EXAMPLE-------------------- Sign -Cert "iPhone Distribution: Company Name" -Profile " distributionprovisiol . txt . txtmobileprovision" -in "/Users/user1/Archives/citrix。异丙醇“< !——NeedCopy >

在iOS设备上收集系统日志

iOS设备上可以通过iPhone Configuration Utility工具或Xcode收集系统日志。然后,您可以将这些文件通过电子邮件发送给Citrix支持部门,以帮助解决应用程序的问题。

使用配置实用工具收集iOS设备上的系统日志

  1. 下载并安装Apple Configurator(以前的iPhone Configuration Utility)工具苹果。您可以在iPhone和IPad上使用该工具。
  2. 确保您的设备符合系统要求和支持的语言。
  3. 运行安装程序并按照提示完成向导。
  4. 打开配置器工具。
  5. 在“设备”下,单击您的设备。
  6. 点击控制台然后点击清晰的清除已存在的日志。
  7. 再现问题,单击另存为然后附上日志并通过电子邮件发送给支持人员。

在iOS设备上使用Xcode收集日志

  1. 在Mac上,单击,点击然后点击公用事业公司

  2. 公用事业公司文件夹,双击控制台

  3. 在控制台中,在设备,单击需要获取控制台日志的iOS设备。

  4. 重现问题。

  5. 在控制台中,执行以下操作之一:
    • 在主窗口中,选择最近的错误消息。
    • 在控制台上菜单栏,点击编辑然后点击选择所有
  6. 点击编辑然后点击复制

  7. 打开TextEdit,然后将复制的日志粘贴到一个新文件中。

  8. 附上文件在您的电子邮件支持。