操作系统的签名步骤会略有不同,但从概念上讲是相同的。 分发给其他人使用的应用程序必须进行签名。 尽管 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:
- 从 iOS Dev Center 下载开发者证书(例如,ios_developer.cer)。
- 从 iOS Dev Center 下载移动配置文件(例如,ios_developer.mobileprovision)。
- 使用 Finder 浏览到应用程序 > 实用工具 > Keychain Access。
- 将证书导入 Keychain Access。
- 在 Keychain Access 中,从 Keychain 列表选择登录,并从类别列表选择我的证书。 选择名为 phone Developer: Your Name 的证书,并通过带密码的私钥(例如,john_doe_private_key.p12)导出证书。
证书文件创建完毕。
- 在 AppStudio 中,浏览到设置 > 平台 > iOS。
- 设置配置文件路径。
- 设置应用程序的分发类型。 有关选项的详细信息,请参阅有关分发方法的 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,每个开发者需执行一次以下步骤:
- 从 https://www.oracle.com/technetwork/java/javase/downloads/index.html 下载并安装 Java 开发工具包 (JDK)。
- 在桌面计算机上创建名为 JAVA_HOME 的环境变量:https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/index.html。
- 将 JDK bin 文件夹路径添加到 PATH 环境变量中。
- 在命令窗口中,使用以下内容创建密钥:keytool -genkey -v -keystore [keystore_name].keystore -alias [alias_name] -keyalg RSA -keysize 2048 -validity 10000,其中 keystore_name 是为生成的 keystore 文件选择的名称,而 alias_name 是为其选择的别名。
- 输入 keystore 密码并确认。
- 输入附加信息并确认。
- 输入密钥密码。 此密码可以是唯一的,也可以按 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 的开发人员文档中的创建用于包签名的证书。