为应用程序签名

操作系统的签名步骤会略有不同,但从概念上讲是相同的。 分发给其他人使用的应用程序必须进行签名。 尽管 ArcGIS AppStudio 将为您执行应用程序签名和构建过程,但您仍需从每个操作系统供应商处获得签名文件,并将其输入到 AppStudio 中。

准备新的应用程序

在签署和发布应用程序之前,应给出一个 ArcGIS Client Id,一个重定向 URI 和一个许可字符串。 虽然仍然可以在没有客户端 ID 或重定向 URI 的情况下构建应用程序,但在使用 ArcGIS 服务的应用程序中这两者都很重要。

所有应用程序的指定用户登录都需要 ArcGIS 客户端 ID(又称 AppID)。 要获取客户端 ID,请转至 https://developers.arcgis.com,使用您的开发者证书登录,单击仪表盘旁边的下拉箭头,然后选择新应用程序。 注册完成后,您将接收到一个客户端 ID,可将其复制到 AppStudio 应用程序中。如果您在使用 ArcGIS AppStudio,也可以通过单击注册按钮,在设置 > 许可中生成客户端 ID。

如果您的应用需要指定用户登录,您还需要提供重定向 URI。 重定向 URI 表示完成 OAuth 登录后用户可以重定向到的有效位置。 要为您的应用程序添加新的重定向 URI,请转至 https://developers.arcgis.com 中的身份验证选项卡。如果您尚未注册应用程序,请先在这里注册,然后添加您自己的重定向 URI,或添加 urn:ietf:wg:oauth:2.0:oob 以通过托管的重定向页面返回至 ArcGIS Online 中的应用程序。 urn:ietf:wg:oauth:2.0:oob URI 也会在 ArcGIS AppStudio 中构建和注册的任何应用程序中自动设置。

需要许可字符串,以构建使用 ArcGIS Runtime 版本 100.x 的应用程序。 在不具有许可字符串的情况下无法构建应用程序,这也意味着应用程序需授权才能执行这一 ArcGIS 平台功能。 有关如何获取许可字符串的信息,请参阅为应用程序提供许可

iOS 应用程序签名

所有 iOS 应用程序都需要签名。 对于为测试而创建的应用程序,签名时必须使用与您的 Apple 开发者帐户绑定的开发者证书和将执行测试的设备。 生产证书只绑定到 Apple 开发者帐户。

在云端或本地运行 AppStudio 库侧面板中的构建工具之前,请确保已在设置iOS 选项卡中的平台标题下提供以下内容:

  • Bundle ID - 始终使用反向 Internet 域名,例如,com.companyname.applicationname。 包名称是应用程序的唯一标识符,也是应用程序进程的默认名称。 发布应用程序后将无法更改包名称。 有关更多详细信息,请参阅 准备分发应用程序中的包 ID 说明。
  • 配置文件 - 用于指示计划运行应用程序的设备。
  • 证书(.p12 文件) - App Store 或内部分发的证书。 此文件在 Keychain Access 中创建。 如果您未在 AppStudio 中同时提供此信息和 bundle ID,则不会生成安装文件。 有关详细信息,请参阅什么是应用程序登录?

运行构建工具时,系统将提示您提供证书密码。

要创建签名所需的证书文件,每个开发者需执行一次以下步骤,同时还需要使用 Mac:

  1. iOS Dev Center 下载开发者证书(例如,ios_developer.cer)。
  2. iOS Dev Center 下载移动配置文件(例如,ios_developer.mobileprovision)。
  3. 使用 Finder 浏览到应用程序 > 实用工具 > Keychain Access
  4. 将证书导入 Keychain Access。
  5. 在 Keychain Access 中,从 Keychain 列表选择登录,并从类别列表选择我的证书。 选择名为 phone Developer: Your Name 的证书,并通过带密码的私钥(例如,john_doe_private_key.p12)导出证书。

    证书文件创建完毕。

  6. AppStudio 中,浏览到设置 > 平台 > iOS
  7. 设置配置文件路径。
  8. 设置应用程序的分发类型。 有关选项的详细信息,请参阅有关分发方法的 Xcode 文档
注:

双击 .p12 证书文件和移动配置文件以导入文件。

如果您是在 macOS 上使用 AppStudio,则必须设置两个附加属性才能通过“本地构建”工具构建 iOS 应用程序。 这些字段的内容可在开发或分发证书中找到,并且可通过 Finder 浏览到应用程序 > 实用工具 > Keychain Access 对其进行查看。

Team ID 字段中输入证书的组织单位。

Code Signing Identity 字段中输入证书的常用名称。

Android 应用程序签名

要准备构建 Android 版本,必须首先生成签名 Keystore 文件。 有关如何创建此文件的详细信息,请参阅 Android 文档

在云端或本地运行构建工具之前,请确保已在设置Android 选项卡中的平台标题下提供以下内容:

  • 包名称 - 始终使用反向 Internet 域名,例如,com.companyname.applicationname。 包名称是应用程序的唯一标识符,也是应用程序进程的默认名称。 发布应用程序后将无法更改包名称。 有关其他详细信息,请参阅 Android SDK 的清单元素中的包名称说明。
  • Keystore 文件路径 - 台式计算机内 Keystore 文件的位置。
  • 密钥别名 - 创建 keystore 时创建的密钥名称。

如果未提供此信息,安装文件仍将创建,但不会获得签名。 可以安装未签名文件以供测试使用,但是无法将其提交到 Google Play 商店或 Amazon Appstore

运行构建工具时,系统将提示您提供 keystore 和密钥密码。

要创建 keystore,每个开发者需执行一次以下步骤:

  1. https://www.oracle.com/technetwork/java/javase/downloads/index.html 下载并安装 Java 开发工具包 (JDK)。
  2. 在桌面计算机上创建名为 JAVA_HOME 的环境变量:https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/index.html
  3. 将 JDK bin 文件夹路径添加到 PATH 环境变量中。
  4. 在命令窗口中,使用以下内容创建密钥:keytool -genkey -v -keystore [keystore_name].keystore -alias [alias_name] -keyalg RSA -keysize 2048 -validity 10000,其中 keystore_name 是为生成的 keystore 文件选择的名称,而 alias_name 是为其选择的别名。
  5. 输入 keystore 密码并确认。
  6. 输入附加信息并确认。
  7. 输入密钥密码。 此密码可以是唯一的,也可以按 Enter 键使用与 keystore 密码相同的密码。

    keystore 文件将在运行此命令的文件夹中创建。

macOS 应用程序签名

Android 类似,如果请求 macOS 安装文件时未提供证书,仍会创建这些文件但是没有为其签名。 可以安装未签名文件以供测试使用,但是无法将其提交到 Mac Store。 以下步骤与 iOS 类似;但是 macOS 不需要配置文件。 有关详细信息,请参阅什么是应用程序登录?

在云端或本地运行构建工具之前,请确保已在设置macOS 选项卡中的平台标题下提供以下内容:

  • Bundle ID - 始终使用反向 Internet 域名,例如,com.companyname.applicationname。 包名称是应用程序的唯一标识符,也是应用程序进程的默认名称。 发布应用程序后将无法更改包名称。 有关更多详细信息,请参阅 准备分发应用程序中的包 ID 说明。
  • 证书(.p12 文件) - App Store 或内部分发的证书。 此文件在 Keychain Access 中创建。 如果您未在 AppStudio 中同时提供此信息和 bundle ID,则不会生成安装文件。 有关详细信息,请参阅什么是应用程序登录?

运行构建工具时,系统将提示您提供证书密码。

要创建为 macOS 应用程序签名时所需的证书文件,请遵循上面针对 iOS 应用程序介绍的相同步骤。

Windows 应用程序签名

Android 类似,如果请求 Windows 安装文件时未提供证书,仍会创建这些文件但是没有为其签名。

在云端或本地运行构建工具之前,请确保已在设置Windows 选项卡中的平台标题下提供证书文件。 此证书(.p12.pfx 文件)适用于 Windows Store 或内部分发。 有关详细信息,请参阅 Microsoft 的开发人员文档中的创建用于包签名的证书