iOS 平台指南

本指南介绍了如何设置 SDK 开发环境以将 Cordova 应用程序部署到 iOS 设备(如 iPhone 和 iPad),以及如何在开发工作流程中选择性地使用以 iOS 为中心的命令行工具。无论您是想使用这些平台为中心的 shell 工具还是跨平台 Cordova CLI 进行开发,都需要安装 SDK 工具。有关两种开发路径的比较,请参阅 概述。有关 CLI 的详细信息,请参阅 Cordova CLI 参考

要求和支持

用于构建 iOS 应用程序的 Apple® 工具只能在 macOS 环境中运行。Xcode® 是 iOS 应用程序开发的主要工具,它包含 iOS SDK(软件开发工具包)。要提交到 Apple App Store℠,应用程序必须使用这些 Apple 工具的最新版本构建。

您可以通过使用与 iOS SDK 和 Xcode 集成的 iOS 模拟器来评估许多 Cordova 功能。但是,测试应用程序的所有设备特定功能需要实际设备,然后才能最终提交到 App Store。

下表概述了 Cordova-iOS 按版本的要求。此外,Xcode 也有自己的系统要求,建议您参考 最低要求和支持的 SDK 文档以进行验证。

Cordova-iOS 版本 iOS 最低支持 工具版本
7.x 11.0
  • Cocoapods: >=1.8.0
  • ios-deploy: >=1.9.2
  • Node: >=16.13.0
  • Xcode (xcodebuild): >=11.0.0
6.x 11.0
  • Cocoapods: >=1.8.0
  • ios-deploy: >=1.9.2
  • Node: >=10.0.0
  • Xcode (xcodebuild): >=11.0.0
5.x 10.0
  • Cocoapods: >=1.0.1
  • ios-deploy: >=1.9.2
  • Node: >=6.0.0
  • Xcode (xcodebuild): >=10.0.0

安装要求

Xcode

有两种方法可以下载 Xcode

  • App Store,可以通过在 App Store 应用程序中搜索“Xcode”来获取。

  • Apple 开发者下载,这需要注册为 Apple 开发者。

安装 Xcode 后,需要启用几个命令行工具才能运行 Cordova。从命令行运行

$ xcode-select --install

部署工具

使用 ios-deploy 工具,您可以从命令行在 iOS 设备上启动 iOS 应用程序。

通过 Homebrew 安装 ios-deploy,运行

$ brew install ios-deploy

CocoaPods

需要 CocoaPods 工具来构建 iOS 应用程序。需要最低版本 1.8.0,但始终建议使用最新版本。

要安装 CocoaPods,请从命令行终端运行以下命令

$ sudo gem install cocoapods

项目配置

安装 Xcode 将主要设置开始使用原生方面所需的一切。您现在应该能够创建和构建 Cordova 项目。有关安装和使用 CLI 的更多详细信息,请参阅 创建您的第一个应用程序 指南。

部署到模拟器

要在 iOS 模拟器中预览应用程序

  1. 从 Xcode 打开工作区文件 (platforms/ios/HelloWorld.xcworkspace), 从命令行

     $ open ./platforms/ios/HelloWorld.xcworkspace/
    
  2. 确保在左侧面板 (1) 中选择了 HelloWorld 项目。

  3. 从工具栏的 方案 菜单中选择目标设备,例如 (2) 中突出显示的 iPhone XR 模拟器。

  4. 按工具栏中 方案 左侧的 运行 按钮 (3)。这将在模拟器中构建、部署和运行应用程序。将打开一个单独的模拟器应用程序以显示应用程序。

    一次只能运行一个模拟器,因此如果您想在不同的模拟器中测试应用程序,则需要退出模拟器应用程序并在 Xcode 中运行不同的目标。

Xcode 附带了最新版本的 iPhone 和 iPad 的模拟器。较旧的版本可能在 Xcode → 首选项… → 组件 面板中可用。

部署到设备

有关部署到设备的各种要求的详细信息,请参阅 Apple 的 关于应用程序分发工作流程 中的“在设备上启动应用程序”部分。简而言之,您需要在部署之前执行以下操作

  1. iOS 配置门户 中创建配置配置文件。您可以使用其开发配置助手来创建和安装 Xcode 所需的配置文件和证书。

  2. 验证构建设置中代码签名部分内的代码签名标识设置是否设置为您的配置配置文件名称。

要部署到设备

  1. 使用 USB 线将设备连接到 Mac。

  2. 从 Xcode 窗口的 方案 下拉列表中选择项目名称。

  3. 设备 下拉列表中选择您的设备。如果它通过 USB 连接但仍然没有出现,请按 组织者 按钮以解决任何错误。

  4. 运行 按钮以构建、部署和在您的设备上运行应用程序。

签名应用程序

首先,您应该阅读 代码签名支持页面应用程序分发工作流程

使用标志

要签名应用程序,您需要以下参数

参数 标志 描述
代码签名标识 --codeSignIdentity 用于签名的代码签名标识。它可以使用 Xcode 创建并添加到您的钥匙串中。从 Xcode 8 开始,您应该对 debugrelease 都使用 --codeSignIdentity="iPhone Developer"
开发团队 --developmentTeam 用于代码签名的开发团队 (团队 ID)。您将使用此设置和简化的代码签名标识(即仅“iPhone Developer”)来签名您的应用程序,您不需要提供配置配置文件。
打包类型 --packageType 这将确定 Xcode 生成的构建类型。有效选项是 development(默认)、enterprisead-hocapp-store
配置配置文件 --provisioningProfile (可选) 要用于手动签名的配置配置文件的 GUID。它在此处复制到您的 Mac 上:~/Library/MobileDevice/Provisioning\ Profiles/。在文本编辑器中打开它,您可以找到需要在此处指定的 GUID,如果您使用的是手动签名。
自动配置 --automaticProvisioning (可选) 启用以允许 Xcode 自动管理配置配置文件。有效选项是 false(默认)和 true
身份验证密钥路径 --authenticationKeyPath (可选) App Store Connect API p8 密钥文件的路径,用于自动分发签名。
身份验证密钥 ID --authenticationKeyID (可选) App Store Connect API 密钥文件的密钥 ID,用于自动分发签名。
身份验证密钥颁发者 ID --authenticationKeyIssuerID (可选) App Store Connect API 凭据的颁发者 ID 值,用于自动分发签名。

这些参数可以使用上述命令行参数指定给 Cordova CLI buildrun 命令。

注意:您应该使用双 -- 来指示这些是平台特定的参数,例如

cordova run ios --release -- --codeSignIdentity="iPhone Developer" --developmentTeam=FG35JLLMXX4A --packageType=development.

使用 build.json

或者,您可以在构建配置文件(默认:build.json 或将 --buildConfig 标志添加到相同的命令中)中指定这些标志,因此您也可以使用其他文件名,例如 cordova build ios --buildConfig=../customBuild.json。以下是一个构建配置文件的示例

对于自动签名,其中配置配置文件由 Xcode 自动管理(推荐)

{
    "ios": {
        "debug": {
            "codeSignIdentity": "iPhone Developer",
            "developmentTeam": "FG35JLLMXX4A",
            "packageType": "development",
            "automaticProvisioning": true
        },
        "release": {
            "codeSignIdentity": "iPhone Developer",
            "developmentTeam": "FG35JLLMXX4A",
            "packageType": "app-store",
            "automaticProvisioning": true,
            "authenticationKeyPath": "/path/to/AuthKey_D383SF739.p8",
            "authenticationKeyID": "D383SF739",
            "authenticationKeyIssuerID": "6053b7fe-68a8-4acb-89be-165aa6465141"
        }
    }
}

对于手动签名,通过 UUID 指定配置配置文件

{
    "ios": {
        "debug": {
            "codeSignIdentity": "iPhone Development",
            "provisioningProfile": "926c2bd6-8de9-4c2f-8407-1016d2d12954",
            "developmentTeam": "FG35JLLMXX4A",
            "packageType": "development"
        },
        "release": {
            "codeSignIdentity": "iPhone Distribution",
            "provisioningProfile": "70f699ad-faf1-4adE-8fea-9d84738fb306",
            "developmentTeam": "FG35JLLMXX4A",
            "packageType": "app-store"
        }
    }
}

还支持混合使用命令行参数和 build.json 中的参数。来自命令行参数的值将优先级更高。

Xcode 构建标志

如果您有需要将其他构建标志传递给 Xcode 的自定义情况,您将使用一个或多个 --buildFlag 选项将这些标志传递给 xcodebuild。如果您使用 xcodebuild 内置标志,它将显示警告。

cordova build --device --buildFlag="MYSETTING=myvalue" --buildFlag="MY_OTHER_SETTING=othervalue"
cordova run --device --buildFlag="DEVELOPMENT_TEAM=FG35JLLMXX4A" --buildFlag="-scheme TestSchemeFlag"

您也可以在 上面build.json 中指定 buildFlag 选项(buildFlag 键的值是字符串或字符串数组)。

调试

有关 Xcode 附带的调试工具的详细信息,请参阅此 文章 和此 视频

在 Xcode 中打开项目

可以在 Xcode 中打开 Cordova for iOS 项目。如果您希望使用 Xcode 内置的调试/分析工具,或者如果您正在开发 iOS 插件,这将非常有用。请注意,在 Xcode 中打开项目时,建议您不要在 IDE 中编辑代码。这将编辑项目 platforms 文件夹中的代码(而不是 www),并且更改可能会被覆盖。相反,编辑 www 文件夹并通过运行 cordova build 复制您的更改。

希望在 IDE 中编辑其原生代码的插件开发者应该在通过 cordova plugin add 将其插件添加到项目时使用 --link 标志。这将链接文件,以便对平台文件夹中插件文件的更改会反映在插件的源文件夹中(反之亦然)。

将 ios 平台添加到您的项目后,并使用 cordova build 构建,您可以从 Xcode 中打开它。双击打开 ${PROJECT_NAME}/platforms/ios/${PROJECT_NAME}.xcworkspace 文件,或从终端打开 Xcode

$ open -a Xcode platforms/ios

屏幕应该如下所示

平台中心工作流程

cordova-ios 包含一些脚本,允许在没有完整 Cordova CLI 的情况下使用该平台。在某些情况下,这种开发路径可能比跨平台 Cordova CLI 提供更广泛的开发选项。例如,在将自定义 Cordova WebView 与原生组件一起部署时,需要使用 shell 工具。在使用此开发路径之前,您仍然需要按照上面 要求和支持 中的说明配置 SDK 环境。

有关下面讨论的每个脚本,请参阅 Cordova CLI 参考,以获取有关其参数和用法的更多信息。每个脚本的名称都与其对应的 CLI 命令匹配。例如,cordova-ios/bin/create 等效于 cordova create

要开始使用,请从 npmGithub 下载 cordova-ios 包。

要使用此包创建项目,请在 bin 文件夹中运行 create 脚本

$ cordova-ios/bin/create ...

要运行应用程序,请在 bin 文件夹中使用 run 脚本

$ cordova-ios/bin/run

创建的项目将有一个名为 cordova 的文件夹,其中包含用于项目特定 Cordova 命令的脚本(例如 runbuild 等)。

要在该项目中安装插件,请使用 Cordova Plugman 实用程序

升级

有关升级 cordova-ios 版本的说明,请参阅 本文

(Mac®、OS X®、Apple®、Xcode®、App Store℠、iPad®、iPhone®、iPod® 和 Finder® 是 Apple Inc. 的商标)