【WWDC 110371】 使用 Xcode 进行多平台开发的那些事 - 小专栏 您所在的位置:网站首页 Xcode支持以下哪些语言 【WWDC 110371】 使用 Xcode 进行多平台开发的那些事 - 小专栏

【WWDC 110371】 使用 Xcode 进行多平台开发的那些事 - 小专栏

2024-06-08 05:02| 来源: 网络整理| 查看: 265

摘要:本文将配合 Xcode 14 从以下几个方面讲述多平台项目从开发到上线的过程

本文基于 Session 110371 梳理。

作者:Sinter,关注跨平台与 AR 技术

审核:

四娘,老司机技术社区核心成员

王浙剑(Damonwong),老司机技术社区负责人、《WWDC22 内参》主理人,目前就职于阿里巴巴。

产品支持多平台是一个常见的运营思路,一般而言又分为以下两种:

支持移动平台:Android、iOS 支持苹果生态:iOS、iPadOS、macOS、watchOS

为了提高生产力,许多公司/开发会使用跨平台技术进行开发:

针对移动平台:有 Flutter 和 React Native 跨平台技术。 针对苹果生态:早些年,开发 iOS iPadOS 应用需要 UIKit ,开发 macOS 应用需要 AppKit,需要创建两个项目,二者差异大,维护两端成本高。

而现在,使用 Xcode 14,只需一个项目即可开发多平台应用。

本文将结合 WWDC 110371 session 从以下几个方面谈谈如何开发多平台应用:

Xcode 14 创建多平台项目 创建多平台项目 Xcode 14 比 Xcode 13 好在哪 多平台项目配置 旧项目支持多平台 多平台项目开发 多平台项目下的开发问题 多平台项目下应用的发布

注:文章撰写时 Xcode 14, macOS 13,iOS 16 均属于 beta 版本,和最终正式版可能会存在一些差异。

Xcode 14 创建多平台项目

打开 Xcode 14,使用 CMD+Shift+N 快捷键,快速打开新建窗口,选择 Multiplatform - App,新建名称为 Xcode 14 的项目,点击 "Next" 完成创建。这时候新建的应用即为多平台应用。

注:使用 Xcode 14 创建的多平台应用无法使用低版本 Xcode 打开。

创建多平台项目 Xcode 14 比 Xcode 13 好在哪

熟悉 Xcode 13 的同学会发现,在 Xcode 13 就可以创建多平台应用,但是 Xcode 13 创建的多平台项目各个平台并没有很好的融合在一起。存在一些局限性:

使用 Xcode 13 创建一个多平台应用(如下图),首先看到可以发现,iOS 与 macOS 是区分 TARGETS 的,Target 有着不同的项目配置,那么 iOS 与 macOS 的项目配置就无法共享,如果要统一双平台的配置,那么一个 Target 调整,其他的 Target 都需要跟着调整,十分繁琐。

然后打开上面使用 Xcode 14 创建的应用,打开通用设置页面,会发现 TARGETS 下只有 "Xcode 14" 而不是 "Xcode 14 (iOS)" 和 "Xcode 14 (macOS)"。结合起来的 Target 说明了在 Xcode 14 下,多平台应用默认共享配置,这在 Xcode 13 下是不存在的。而且如果项目差异大,需要不同的设置,也可以通过新建 Target 来完成使得达到与 Xcode 13 一样的效果。

除此之外,在 Target 的通用设置页面,可以发现顶部多了支持多平台 (Supported Destinations) 的选项,可以添加、删除项目所支持的平台。

多平台项目配置 增加、删除平台

上文提到在 Supported Destinations 的选项中,可以添加、删除项目所支持的平台。这里选中 Destination 的 "Mac",再按下下面的 - 按钮,项目便删除了对 Mac 平台的支持。这时候,让我们再添加回来,点击 Destination 下方的 + 按钮。选择 Mac 后,这里会出现 3 个关于 Mac 平台的选项,一时间很多感触的同学可能不知道怎么选择,看到这里的同学可以先思考下,下文给出选择方法。

这里的三个选项分别是:Mac、Mac Catalyst、Mac (Designed for iPad)

可以根据以下方法选择适合自己项目的:

如果项目使用 SwiftUI,需要使用 SwiftUI 创造 Mac 原生体验,那么选择 Mac,可以使用 AppKit 实现 SwiftUI 无法完成的需求; 如果项目已有 iOS 应用,使用 UIKit/Storyboard/Xib 开发,那么优先选择 Catalyst,可以把 iOS 应用转换为兼容 Mac 的应用; 如果选择 Mac (Designed for iPad) 则可以让 使用苹果芯片的 Mac 运行 iOS 的应用。 不建议全新开发的 Mac 应用使用 Mac Catalyst,原因如下: Mac Catalyst 无法渐进式地在 AppKit 应用中使用。 Mac Catalyst 应用中的 SwiftUI 通过 UIKit 实现,性能相比 AppKit 应用的 SwiftUI 实现有一定差距。

注:Mac 和 Mac (Designed for iPad) 可以共存,但是发布到 App Store 最终会默认使用 Mac 的版本,而 Mac 与 Mac Catalyst 无法共存。

参数配置

看完了增加、删除平台。接下来说说多平台的参数配置与原先的有何不同。细心的小伙伴会发现 Target 的通用配置页面下面的许多配置项右边多了 + 按钮。

目前多平台配置支持:最小版本号、应用名称、版本号、编译号、应用图标。

点击 + 按钮即可以配置不同平台的不同参数,例如配置应用名称,这里让我们把 Debug 环境下的 iOS 应用名称改成 "iOS",macOS 应用名称 改成 "macOS"。这么方便的功能,真想立马用到项目中去。

旧项目支持多平台 兼容到 Xcode 14

如果你有使用 Xcode 14 以下版本创建的项目,那么使用 Xcode 14 打开即可以看到多平台选项。添加多平台支持方法和新创建的项目一致。

这里让我们使用 Xcode 14 打开 Xcode 13 所创建的项目,选中名为 "Xcode 13 (iOS)" 的 Target,打开通用设置页添加对 Mac 平台的支持。当项目第一次添加 Mac 支持时,Xcode 会提示会更新 Target 内容包含支持 Mac 平台所需到依赖和框架,原支持 iOS 的 capability 也会支持 macOS。

注意:添加 Xcode 支持不会对代码进行修改,如果项目中的 API 不支持 Mac ,需要手动进行修改。

摘要:本文将配合 Xcode 14 从以下几个方面讲述多平台项目从开发到上线的过程

本文基于 Session 110371 梳理。

作者:Sinter,关注跨平台与 AR 技术

审核:

四娘,老司机技术社区核心成员

王浙剑(Damonwong),老司机技术社区负责人、《WWDC22 内参》主理人,目前就职于阿里巴巴。

产品支持多平台是一个常见的运营思路,一般而言又分为以下两种:

支持移动平台:Android、iOS 支持苹果生态:iOS、iPadOS、macOS、watchOS

为了提高生产力,许多公司/开发会使用跨平台技术进行开发:

针对移动平台:有 Flutter 和 React Native 跨平台技术。 针对苹果生态:早些年,开发 iOS iPadOS 应用需要 UIKit ,开发 macOS 应用需要 AppKit,需要创建两个项目,二者差异大,维护两端成本高。

而现在,使用 Xcode 14,只需一个项目即可开发多平台应用。

本文将结合 WWDC 110371 session 从以下几个方面谈谈如何开发多平台应用:

Xcode 14 创建多平台项目 创建多平台项目 Xcode 14 比 Xcode 13 好在哪 多平台项目配置 旧项目支持多平台 多平台项目开发 多平台项目下的开发问题 多平台项目下应用的发布

注:文章撰写时 Xcode 14, macOS 13,iOS 16 均属于 beta 版本,和最终正式版可能会存在一些差异。

Xcode 14 创建多平台项目

打开 Xcode 14,使用 CMD+Shift+N 快捷键,快速打开新建窗口,选择 Multiplatform - App,新建名称为 Xcode 14 的项目,点击 "Next" 完成创建。这时候新建的应用即为多平台应用。

注:使用 Xcode 14 创建的多平台应用无法使用低版本 Xcode 打开。

创建多平台项目 Xcode 14 比 Xcode 13 好在哪

熟悉 Xcode 13 的同学会发现,在 Xcode 13 就可以创建多平台应用,但是 Xcode 13 创建的多平台项目各个平台并没有很好的融合在一起。存在一些局限性:

使用 Xcode 13 创建一个多平台应用(如下图),首先看到可以发现,iOS 与 macOS 是区分 TARGETS 的,Target 有着不同的项目配置,那么 iOS 与 macOS 的项目配置就无法共享,如果要统一双平台的配置,那么一个 Target 调整,其他的 Target 都需要跟着调整,十分繁琐。

然后打开上面使用 Xcode 14 创建的应用,打开通用设置页面,会发现 TARGETS 下只有 "Xcode 14" 而不是 "Xcode 14 (iOS)" 和 "Xcode 14 (macOS)"。结合起来的 Target 说明了在 Xcode 14 下,多平台应用默认共享配置,这在 Xcode 13 下是不存在的。而且如果项目差异大,需要不同的设置,也可以通过新建 Target 来完成使得达到与 Xcode 13 一样的效果。

除此之外,在 Target 的通用设置页面,可以发现顶部多了支持多平台 (Supported Destinations) 的选项,可以添加、删除项目所支持的平台。

多平台项目配置 增加、删除平台

上文提到在 Supported Destinations 的选项中,可以添加、删除项目所支持的平台。这里选中 Destination 的 "Mac",再按下下面的 - 按钮,项目便删除了对 Mac 平台的支持。这时候,让我们再添加回来,点击 Destination 下方的 + 按钮。选择 Mac 后,这里会出现 3 个关于 Mac 平台的选项,一时间很多感触的同学可能不知道怎么选择,看到这里的同学可以先思考下,下文给出选择方法。

这里的三个选项分别是:Mac、Mac Catalyst、Mac (Designed for iPad)

可以根据以下方法选择适合自己项目的:

如果项目使用 SwiftUI,需要使用 SwiftUI 创造 Mac 原生体验,那么选择 Mac,可以使用 AppKit 实现 SwiftUI 无法完成的需求; 如果项目已有 iOS 应用,使用 UIKit/Storyboard/Xib 开发,那么优先选择 Catalyst,可以把 iOS 应用转换为兼容 Mac 的应用; 如果选择 Mac (Designed for iPad) 则可以让 使用苹果芯片的 Mac 运行 iOS 的应用。 不建议全新开发的 Mac 应用使用 Mac Catalyst,原因如下: Mac Catalyst 无法渐进式地在 AppKit 应用中使用。 Mac Catalyst 应用中的 SwiftUI 通过 UIKit 实现,性能相比 AppKit 应用的 SwiftUI 实现有一定差距。

注:Mac 和 Mac (Designed for iPad) 可以共存,但是发布到 App Store 最终会默认使用 Mac 的版本,而 Mac 与 Mac Catalyst 无法共存。

参数配置

看完了增加、删除平台。接下来说说多平台的参数配置与原先的有何不同。细心的小伙伴会发现 Target 的通用配置页面下面的许多配置项右边多了 + 按钮。

目前多平台配置支持:最小版本号、应用名称、版本号、编译号、应用图标。

点击 + 按钮即可以配置不同平台的不同参数,例如配置应用名称,这里让我们把 Debug 环境下的 iOS 应用名称改成 "iOS",macOS 应用名称 改成 "macOS"。这么方便的功能,真想立马用到项目中去。

旧项目支持多平台 兼容到 Xcode 14

如果你有使用 Xcode 14 以下版本创建的项目,那么使用 Xcode 14 打开即可以看到多平台选项。添加多平台支持方法和新创建的项目一致。

这里让我们使用 Xcode 14 打开 Xcode 13 所创建的项目,选中名为 "Xcode 13 (iOS)" 的 Target,打开通用设置页添加对 Mac 平台的支持。当项目第一次添加 Mac 支持时,Xcode 会提示会更新 Target 内容包含支持 Mac 平台所需到依赖和框架,原支持 iOS 的 capability 也会支持 macOS。

注意:添加 Xcode 支持不会对代码进行修改,如果项目中的 API 不支持 Mac ,需要手动进行修改。

摘要:本文将配合 Xcode 14 从以下几个方面讲述多平台项目从开发到上线的过程

本文基于 Session 110371 梳理。

作者:Sinter,关注跨平台与 AR 技术

审核:

四娘,老司机技术社区核心成员

王浙剑(Damonwong),老司机技术社区负责人、《WWDC22 内参》主理人,目前就职于阿里巴巴。

产品支持多平台是一个常见的运营思路,一般而言又分为以下两种:

支持移动平台:Android、iOS 支持苹果生态:iOS、iPadOS、macOS、watchOS

为了提高生产力,许多公司/开发会使用跨平台技术进行开发:

针对移动平台:有 Flutter 和 React Native 跨平台技术。 针对苹果生态:早些年,开发 iOS iPadOS 应用需要 UIKit ,开发 macOS 应用需要 AppKit,需要创建两个项目,二者差异大,维护两端成本高。

而现在,使用 Xcode 14,只需一个项目即可开发多平台应用。

本文将结合 WWDC 110371 session 从以下几个方面谈谈如何开发多平台应用:

Xcode 14 创建多平台项目 创建多平台项目 Xcode 14 比 Xcode 13 好在哪 多平台项目配置 旧项目支持多平台 多平台项目开发 多平台项目下的开发问题 多平台项目下应用的发布

注:文章撰写时 Xcode 14, macOS 13,iOS 16 均属于 beta 版本,和最终正式版可能会存在一些差异。

Xcode 14 创建多平台项目

打开 Xcode 14,使用 CMD+Shift+N 快捷键,快速打开新建窗口,选择 Multiplatform - App,新建名称为 Xcode 14 的项目,点击 "Next" 完成创建。这时候新建的应用即为多平台应用。

注:使用 Xcode 14 创建的多平台应用无法使用低版本 Xcode 打开。

创建多平台项目 Xcode 14 比 Xcode 13 好在哪

熟悉 Xcode 13 的同学会发现,在 Xcode 13 就可以创建多平台应用,但是 Xcode 13 创建的多平台项目各个平台并没有很好的融合在一起。存在一些局限性:

使用 Xcode 13 创建一个多平台应用(如下图),首先看到可以发现,iOS 与 macOS 是区分 TARGETS 的,Target 有着不同的项目配置,那么 iOS 与 macOS 的项目配置就无法共享,如果要统一双平台的配置,那么一个 Target 调整,其他的 Target 都需要跟着调整,十分繁琐。

然后打开上面使用 Xcode 14 创建的应用,打开通用设置页面,会发现 TARGETS 下只有 "Xcode 14" 而不是 "Xcode 14 (iOS)" 和 "Xcode 14 (macOS)"。结合起来的 Target 说明了在 Xcode 14 下,多平台应用默认共享配置,这在 Xcode 13 下是不存在的。而且如果项目差异大,需要不同的设置,也可以通过新建 Target 来完成使得达到与 Xcode 13 一样的效果。

除此之外,在 Target 的通用设置页面,可以发现顶部多了支持多平台 (Supported Destinations) 的选项,可以添加、删除项目所支持的平台。

多平台项目配置 增加、删除平台

上文提到在 Supported Destinations 的选项中,可以添加、删除项目所支持的平台。这里选中 Destination 的 "Mac",再按下下面的 - 按钮,项目便删除了对 Mac 平台的支持。这时候,让我们再添加回来,点击 Destination 下方的 + 按钮。选择 Mac 后,这里会出现 3 个关于 Mac 平台的选项,一时间很多感触的同学可能不知道怎么选择,看到这里的同学可以先思考下,下文给出选择方法。

这里的三个选项分别是:Mac、Mac Catalyst、Mac (Designed for iPad)

可以根据以下方法选择适合自己项目的:

如果项目使用 SwiftUI,需要使用 SwiftUI 创造 Mac 原生体验,那么选择 Mac,可以使用 AppKit 实现 SwiftUI 无法完成的需求; 如果项目已有 iOS 应用,使用 UIKit/Storyboard/Xib 开发,那么优先选择 Catalyst,可以把 iOS 应用转换为兼容 Mac 的应用; 如果选择 Mac (Designed for iPad) 则可以让 使用苹果芯片的 Mac 运行 iOS 的应用。 不建议全新开发的 Mac 应用使用 Mac Catalyst,原因如下: Mac Catalyst 无法渐进式地在 AppKit 应用中使用。 Mac Catalyst 应用中的 SwiftUI 通过 UIKit 实现,性能相比 AppKit 应用的 SwiftUI 实现有一定差距。

注:Mac 和 Mac (Designed for iPad) 可以共存,但是发布到 App Store 最终会默认使用 Mac 的版本,而 Mac 与 Mac Catalyst 无法共存。

参数配置

看完了增加、删除平台。接下来说说多平台的参数配置与原先的有何不同。细心的小伙伴会发现 Target 的通用配置页面下面的许多配置项右边多了 + 按钮。

目前多平台配置支持:最小版本号、应用名称、版本号、编译号、应用图标。

点击 + 按钮即可以配置不同平台的不同参数,例如配置应用名称,这里让我们把 Debug 环境下的 iOS 应用名称改成 "iOS",macOS 应用名称 改成 "macOS"。这么方便的功能,真想立马用到项目中去。

旧项目支持多平台 兼容到 Xcode 14

如果你有使用 Xcode 14 以下版本创建的项目,那么使用 Xcode 14 打开即可以看到多平台选项。添加多平台支持方法和新创建的项目一致。

这里让我们使用 Xcode 14 打开 Xcode 13 所创建的项目,选中名为 "Xcode 13 (iOS)" 的 Target,打开通用设置页添加对 Mac 平台的支持。当项目第一次添加 Mac 支持时,Xcode 会提示会更新 Target 内容包含支持 Mac 平台所需到依赖和框架,原支持 iOS 的 capability 也会支持 macOS。

注意:添加 Xcode 支持不会对代码进行修改,如果项目中的 API 不支持 Mac ,需要手动进行修改。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有