iOS 平台指南

本指南介绍了如何设置 SDK 开发环境,以便为 iPhone 和 iPad 等 iOS 设备部署 Cordova 应用,以及如何在开发工作流程中选择使用以 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 Developer Downloads 下载,这需要注册成为 Apple 开发者。

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

$ xcode-select --install

部署工具

ios-deploy 工具允许您从命令行在 iOS 设备上启动 iOS 应用程序。

通过运行以下命令,通过 Homebrew 安装 ios-deploy

$ brew install ios-deploy

CocoaPods

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

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

$ sudo gem install cocoapods

项目配置

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

部署到模拟器

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

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

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

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

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

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

Xcode 捆绑了适用于最新版本的 iPhone 和 iPad 的模拟器。较旧的版本可以从 Xcode → 首选项… → 组件面板中获得。

部署到设备

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

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

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

要部署到设备

  1. 使用 USB 电缆将设备插入 Mac。

  2. 在 Xcode 窗口的 Scheme 下拉列表中选择项目名称。

  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 中打开项目

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

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

将 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. 的商标。)