策略默认值和自定义策略

本文讨论了在封装的 ISV 应用程序中处理策略的方法。

  • 更改非托管高级应用程序的策略默认值

MDX App SDK 包含以下策略文件,这些文件仅指定非托管高级应用程序的策略默认值。

  • Android: Applications/Citrix/MDXToolkit/data/MDXSDK_Android/ default_sdk_policies.xml
  • iOS: Applications/Citrix/MDXToolkit/data/MDXSDK/default_policies.xml

这些文件中的所有策略均已禁用。文件中未包含的任何策略都将针对非托管高级应用程序忽略。

可以按如下方式更改默认设置。

  1. 备份计划更改的任何默认策略文件,以备将来需要。
  2. 要更改 ISV 应用程序的策略默认值,请使用 MDX Toolkit 文档中指定的策略值,具体请参阅适用于 Android 应用程序的 MDX 策略适用于 iOS 应用程序的 MDX 策略
  3. 在构建高级应用程序时,将默认策略文件与应用程序资源一起包含。

创建自定义策略

  • MDX Toolkit 中的策略文件提供了策略的完整定义,包括在 Citrix Endpoint Management 控制台中显示的策略标签和帮助文本。封装应用程序时,这些策略会随生成的 .mdx 文件一起包含。可以将自定义策略添加到这些文件,这些文件位于 MDX Toolkit 安装文件夹中的 Applications/Citrix/MDXToolkit/data。

    1. 备份计划更改的任何策略文件,以备将来需要。
    1. 要将策略添加到策略 XML 文件,请使用“策略格式”中提供的格式。
    1. 封装应用程序时,通过在封装命令行中包含 -policyxml 选项来指定修改后的策略 XML 文件的位置:

    -policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    有关使用命令行封装 ISV 应用程序的详细信息,请参阅使用命令行封装企业 iOS 应用程序使用命令行封装 ISV Android 应用程序

  1. 要在 Citrix Endpoint Management™ 控制台中验证策略名称、描述和值,请将应用程序上载到 Endpoint Management。

添加策略的准则

  • 仅更改以粗体显示的项目。
  • PolicyName 元素的值是从应用程序调用的名称。
  • PolicyCategory 元素的值是策略将在 Citrix Endpoint Management 控制台中列出的类别名称。要查找类别名称,请参阅 MDX 策略文件 <Category> 部分中的 CategoryId 值。
  • PolicyDefault 元素的值是策略的默认设置。
  • <Title res_id=”POLICY_ID”> 中的 POLICY_ID 是用于策略的唯一 ID。该 ID 必须以字母开头,不能包含空格,并且只能包含字母、数字或下划线字符。
  • Title 元素的值是显示在 Citrix Endpoint Management 控制台中的策略标签。
  • <Description res_id=”POLICY_DESC_ID”> 中的 POLICY_DESC_ID 是策略描述的唯一 ID。该 ID 必须以字母开头,不能包含空格,并且只能包含字母、数字或下划线字符。
  • Description 元素的值是显示在 Citrix Endpoint Management 控制台中的策略描述。

字符串

<Policy>
   <PolicyName>PolicyName</PolicyName>
   <PolicyType>string</PolicyType>
   <PolicyCategory>Category_ID</PolicyCategory>
   <PolicyDefault>Value</PolicyDefault>
   <PolicyStrings>
      <Title res_id="POLICY_ID”>Sample String Policy</Title>
      <Description res_id="POLICY_DESC_ID">
          Please enter the policy value.
      </Description>
   </PolicyStrings>
</Policy>
<!--NeedCopy-->

布尔值

<Policy>
   <PolicyName>PolicyName</PolicyName>
   <PolicyType>string</PolicyType>
   <PolicyCategory>Category_ID</PolicyCategory>
   <PolicyDefault>false</PolicyDefault>
   <PolicyStrings>
        <Title res_id="POLICY_ID”>Sample Boolean Policy</Title>
      <BooleanTrueLabel res_id="POLICY_ON">On</BooleanTrueLabel>
      <BooleanFalseLabel res_id="POLICY_OFF">Off</BooleanFalseLabel>
      <Description res_id="POLICY_DESC_ID">
          If On, the app does something.
          If Off, the app does something else.

            Default value is Off.
      </Description>
   </PolicyStrings>
</Policy>
<!--NeedCopy-->

枚举

<Policy>
   <PolicyName>PolicyName</PolicyName>
   <PolicyType>enum</PolicyType>
        <PolicyEnumValues>
         <PolicyEnumValue>
               <PolicyEnumValueId>Value1</PolicyEnumValueId>
            <PolicyEnumValueString res_id="ID_1">Yes</PolicyEnumValueString>
            </PolicyEnumValue>
            <PolicyEnumValue>
               <PolicyEnumValueId>Value2</PolicyEnumValueId>
            <PolicyEnumValueString res_id="ID_2">No</PolicyEnumValueString>
         </PolicyEnumValue>
         <PolicyEnumValue>
            <PolicyEnumValueId>Value3</PolicyEnumValueId>
            <PolicyEnumValueString res_id="ID_3">Maybe</PolicyEnumValueString>
            </PolicyEnumValue>
        </PolicyEnumValues>
   <PolicyCategory>Category_ID</PolicyCategory>
   <PolicyDefault>Value1</PolicyDefault>
   <PolicyStrings>
        <Title res_id="POLICY_ID”>Sample Enum Policy</Title>
      <Description res_id="POLICY_DESC_ID">
          Sample policy description.

             Default value is Yes.
      </Description>
   </PolicyStrings>
</Policy>
<!--NeedCopy-->
策略默认值和自定义策略