ADT 代码签名选项ADT 使用 Java 加密体系结构 (JCA) 访问对 AIR 应用程序签名所使用的私钥和证书。签名选项标识 keystore 以及该 keystore 中的私钥和证书。 keystore 必须包含私钥和关联的证书链。如果签名证书链接到某计算机上的受信任证书,则在“AIR 安装”对话框中,证书公用名字段的内容会显示为发布者名称。 ADT 要求证书符合 x509v3 标准 (RFC3280),并同时包含扩展密钥用法扩展和代码签名的相应值。应遵守证书中定义的约束,这些约束要求避免使用某些证书对 AIR 应用程序进行签名。 注: ADT 根据需要使用 Java 运行时环境代理设置来连接 Internet 资源,以便检查证书吊销列表和获取时间戳。如果在使用 ADT 连接这些 Internet 资源时遇到问题,并且网络需要特定的代理设置,则可能需要配置 JRE 代理设置。
AIR 签名选项语法签名选项使用以下语法: -alias aliasName -storetype type -keystore path -storepass password1 -keypass password2 -providerName className -tsa url -alias keystore 中的密钥的别名。当 keystore 仅包含一个证书时,则不必指定别名。如果未指定任何别名,ADT 则使用 keystore 中的第一个密钥。 并非所有 keystore 管理应用程序都允许向证书分配别名。例如,当使用 Windows 系统 keystore 时,则使用证书的识别名称作为别名。使用 Java Keytool 实用程序可以列出可用证书以便确定别名。例如,运行以下命令: keytool -list -storetype Windows-MY 将为证书生成如下输出: CN=TestingCert,OU=QE,O=Adobe,C=US, PrivateKeyEntry, Certificate fingerprint (MD5): 73:D5:21:E9:8A:28:0A:AB:FD:1D:11:EA:BB:A7:55:88 若要在 ADT 命令行中引用此证书,请将别名设置为: CN=TestingCert,OU=QE,O=Adobe,C=US 在 Mac OS X 中,Keychain 中的证书别名与在 Keychain Access 应用程序中显示的名称相同。 -storetype keystore 的类型,由 keystore 实现确定。大多数 Java 安装随附的默认 keystore 实现支持 JKS 和 PKCS12 类型。Java 5.0 包含对 PKCS11 类型和 Keychain 类型的支持,前者用于访问硬件标记中的 keystore,后者用于访问 Mac OS X keychain。Java 6.0 包含对 MSCAPI 类型的支持(在 Windows 中)。如果安装和配置了其他 JCA 提供程序,则可能还可以使用其他 keystore 类型。如果未指定任何 keystore 类型,则使用默认 JCA 提供程序的默认类型。
-keystore 基于文件的存储类型的 keystore 文件路径。 -storepass 访问 keystore 所需的密码。如果未指定密码,ADT 将提示您输入密码。 -keypass 访问用于对 AIR 应用程序签名的私钥所需的密码。如果未指定密码,ADT 将提示您输入密码。 注: 如果您输入密码作为 ADT 命令的一部分,则密码字符会保存在命令行历史记录中。因此,当证书的安全性很重要时,建议您不要使用 -keypass 或 -storepass 选项。另请注意,当忽略密码选项时,不会显示在密码提示处键入的字符(由于相同的安全性原因)。只需键入密码并按 Enter 键即可。
-providerName 指定的 keystore 类型的 JCA 提供程序。如果未指定提供程序,ADT 将使用该 keystore 类型的默认提供程序。 -tsa 指定符合 RFC3161 的时间戳服务器的 URL,以便对数字签名创建时间戳。如果未指定任何 URL,则使用 Geotrust 提供的默认时间戳服务器。对 AIR 应用程序签名设置时间戳时,仍可以在签名证书过期之后安装该应用程序,这是因为时间戳验证该证书在签名时是否有效。 如果 ADT 无法连接到时间戳服务器,则取消签名,并且不会生成任何包。指定 -tsa none 可以禁用时间戳设置功能。但是,对于打包的没有时间戳的 AIR 应用程序,该应用程序将在签名证书过期后停止安装。 注: 许多签名选项与 Java Keytool 实用程序的相同选项具有同等的效用。您可以使用 Keytool 实用程序在 Windows 中检查和管理 keystore。也可以在 Mac OS X 上使用 Apple® 安全实用程序实现此目的。
-provisioning-profile Apple iOS 供给文件。(只有在打包 iOS 应用程序时才需要指定此参数。) 签名选项示例使用 .p12 文件签名: -storetype pkcs12 -keystore cert.p12 使用默认 Java keystore 签名: -alias AIRcert -storetype jks 使用特定 Java keystore 签名: -alias AIRcert -storetype jks -keystore certStore.keystore 使用 Mac OS X keychain 签名: -alias AIRcert -storetype KeychainStore -providerName Apple 使用 Windows 系统 keystore 签名: -alias cn=AIRCert -storeype Windows-MY 使用硬件标签签名(请参考标记制造商提供的 Java 配置相关说明,以便使用该标记并获取正确的 providerName 值): -alias AIRCert -storetype pkcs11 -providerName tokenProviderName 在不嵌入时间戳的情况下签名: -storetype pkcs12 -keystore cert.p12 -tsa none |
![]() |