macOS Catalina 正式发布及 API 的一些变更

640?wx_fmt=jpeg

点击右侧关注,了解黑客的世界!
640?wx_fmt=jpeg

640?wx_fmt=jpeg

点击右侧关注,掌握进阶之路!
640?wx_fmt=jpeg

640?wx_fmt=jpeg

点击右侧关注,探讨技术话题!
640?wx_fmt=jpeg


作者丨知识小集
来源丨知识小集(zsxjtip)

640?wx_fmt=png

macOS Catalina 发布

苹果于当地时间 7 号正式发布了 macOS Catalina。新系统有以下几个大的改动:
• 将 iTunes 拆分成三个 App:Apple Music、Apple Podcasts 和 Apple TV;
640?wx_fmt=jpeg
• 通过 Catalyst 将 iPad 应用移植到 macOS;
• 通过 Sidecar 将 iPad 作为 Mac 的扩展屏幕;
640?wx_fmt=jpeg
• 支持 Apple Arcade,将 Mac 变成一台游戏机;
640?wx_fmt=jpeg
• 增强安全和隐私功能;
• 语音控制;
• Screen Time;


640?wx_fmt=jpeg
• Find My;


640?wx_fmt=jpeg
• ......
macOS Catalina 支持以下机型:
• MacBook 2015+
• MacBook Air 2012+
• MacBook Pro 2012+
• Mac Mini 2012+
• iMac 2012+
• iMac Pro 2017+
• Mac Pro 2013+
在安装更新之前,还需要确保以下几点:
• 备份数据
• 有效的 Apple ID
• 20 G+ 可用存储空间
• 已安装的应用如果是 32 位的,更新系统后会失效;
另外部分用户在尝试升级时,发现版本号显示为 (null),再联想到 iOS 13 短期内连发三个版本,让人对新系统还是报些许怀疑。

macOS Catalina API 变更

如果你是一名 macOS 开发人员,不妨了解一下 macOS Catalina 中一些 API 的变更,以下是部分内容,详情可参考 release note 文档。

General

• 安装第三方内核扩展程序需要重新启动 Mac,然后才能加载它们。
弃用
• 针对 x86-64 体系结构简化了 macOS 框架。现在,执行 i386 代码的应用程序会失败,并显示  EBADARCH  错误代码。其余残存框架不起作用,仅出于兼容性目的而存在。

AirDrop

已知问题
• 当 VPN 在启用  includeAllNetworks  和  excludeLocalNetworks  选项的情况下连接时,AirDrop 不起作用。
解决方法:在使用 AirDrop 之前断开 VPN 的连接。

AppleEvents

• 为了增强安全性,针对远程系统上的应用程序的 AppleEvents 和 AppleScripts 必须以远程系统上的同一用户身份进行身份验证。针对以不同用户身份运行的应用程序的 AppleEvent 会收到  procNotFound  错误。
要允许远程 AppleEvent 在任何用户会话中定位应用程序,请在服务器上的终端中运行以下命令:
 
 
defaults write /Library/Preferences/com.apple.AEServer RestrictAccessToUserSession -bool false
然后在 System Preferences > Sharing 中禁用并重新启用 Remote Apple Events。

Audio

• 现在,可以在 AVAudioEngine 上启用语音处理模式。 
• 可以使用新的 AVAudioNode 类型来包装用户定义的块,以实时发送或接收数据。
• 一种新方法可用于基于 AVAudioEngine 的应用程序,以检索附加到 AVAudioEngine 实例的所有节点的列表。
• AVAudioEnvironmentNode 中的新渲染模式会根据输出设备自动选择最佳的空间音频渲染算法。
• 新的 AVAudioSession 属性允许会话在使用音频输入时播放系统声音。
• 一个新属性 AVAudioSessionPromptStyle 可以根据系统中的其他音频活动,通知应用程序应播放的语音提示样式。
• 扩展了 AVAudioSessionRouteSharingPolicy 枚举,以允许应用程序指定路由共享策略,以便将其音频和视频路由到与 AirPlay 相同的位置。
• 音频单元扩展现在支持所有主机应用程序中都可用的用户预设。
弃用
• 不建议使用 OpenAL 框架,为了兼容起见,它仍然存在。过渡到 AVAudioEngine 以获取空间音频功能。
• 不推荐使用 AUGraph,而推荐使用 AVAudioEngine。
• 应用间音频已弃用。将音频单元用于此功能。
• 不建议使用 Carbon 组件的音频单元,并且在将来的版本中将删除支持。
• 旧版 Core Audio HAL 音频硬件插件不再受支持。将音频服务器插件用于音频驱动程序。

AVFoundation

• AVPlayer 类包含两个新属性, qualifiedForHDRPlayback  和 AVPlayerEligibleForHDRPlaybackDidChangeNotification ,可以使用它们来确定 HDR 显示是否可用以及是否可以在当前设备上播放。
• AVFoundation 现在支持使用 HEVC 对具有 alpha 通道的视频进行编码。AVFoundation API 和网页中的 Safari 广泛支持以这种方式编码的视频。该格式的技术详细信息可以在 Interoperability Profile 规范中找到。
弃用
• macOS 10.15 中不再提供以前不推荐使用的 32 位 QuickTime 框架。
• 仍然存在依赖于 QuickTime 框架的 QTKit 符号,但这些类不起作用。

Core Image

•  filterWithImageURL:options:  和  filterWithImageData:options:  初始化器不再支持早于 6 的 RAW 解码器版本。仍然支持版本 6 和更高版本。
• 添加了新的 API,用于实例化和修改内置的 Core Image 过滤器。
• CICoreMLModel 过滤器得到增强,以支持输入或输出类型为 MLFeatureTypeMultiArray 的模型。
• Metal CIKernel 实例现在支持带有任意结构化数据的参数。
• Metal CIKernel 实例现在支持返回一组 2 x 2 像素。
• CIFormat 符号的整数值(例如kCIFormatARGB8)已更改为一组在平台之间一致的新值。以前的值仍受支持,以实现向后兼容。但是,应避免依赖于特定的数值。

EndpointSecurity

弃用
• 不建议使用  kauth  API。

iCloud

已知的问题
• 更新到 macOS Catalina 10.15 Beta 7 或更高版本后,iCloud Drive 可能会长时间同步。如果您发现任何丢失的文件,可以在主文件夹中的  Recovered Files  文件夹中找到它们。
• 即使关闭“优化存储”,iCloud Drive 可能也无法自动下载所有文件。
解决方法:单独下载文件。
• 在共享文件夹中创建新的Pages,Numbers或Keynote文档时,您可能会看到消息“无法连接到iCloud”。
解决方法:关闭并重新打开文档。

启动守护程序和代理

• 启动守护程序和启动代理引入了新的用户隐私保护。在启动的属性列表中指定对隐私敏感的文件和文件夹可能无法按预期工作,并阻止该服务运行。当前允许在隐私敏感位置使 Program 或 ProgramArguments 指向可执行文件,但在将来的版本中可能会受到限制。
为了遵守新的隐私保护,启动服务的资源必须存储在对隐私不敏感的位置。如有必要,该应用程序可以在其执行期间设置资源,而不必使用启动的属性列表键,从而可以使用 System Preferences > Security & Privacy > Privacy 来授予应用程序访问权限。
下列启动的属性列表键会受到影响:KeepAlive,PathState,QueueDirectories,Sockets,SockPathName,StandardErrorPath,StandardInPath,StandardOutPath和WatchPaths。

Localization

解决的问题
• 修复了某些语言可能会出现裁剪或对齐错误的问题。
• 修复了某些语言可能显示未本地化文本的问题。

Mac Catalyst

已知的问题
• 编译 Mac Catalyst 应用程序的 asset 目录时,当前将忽略  3x  比例因子的所有 asset。因为搜索是从通用 asset 开始的,所以找不到用于特定内存或图形类的 asset。例如,如果您提供一张图片而仅提供6GB和Metal 5v1 asset,则在运行时将找不到该 asset。建议您将所有图像作为矢量提供,以生成正确的比例因子,或者至少提供 2x 版本的 asset。如果您要根据内存和图形系列对资源进行分类,则应提供“任何内存”和“任何图形”。
• 从 iPad 应用程序创建 Mac Catalyst 应用程序时,Xcode 会自动生成唯一的 Mac bundle 标识符。如果您已有想要使用的 Mac bundle 标识符,则可以通过在 Xcode 中手动签名来实现。(51076014)
请按照以下步骤配置您的项目、AppID 和配置文件:
 
 
1. 登录到 Apple Developer,然后选择证书,标识符和配置文件。

2. 在“标识符”部分中,选择要编辑的 iOS 应用标识符。

3. 检查 Mac Catalyst 功能以启用它,然后单击“配置”按钮。

4. 选择使用现有的 macOS AppID,然后从弹出菜单中选择要使用的标识符。单击保存按钮以完成您的AppID的编辑。

5. 在 Profiles 选项中,点击 `+` 按钮创建新的 profile,选择 `macOS App Development`,然后点击继续。

6. 从弹出窗口中选择您的iOS AppID,单击“继续”,然后完成其余的配置文件创建流程。完成后,单击下载按钮。

7. 在Xcode中,选择您的项目以查看 Project Editor,然后选择应用程序的目标。然后选择 Build Settings 选项卡。

8. 将 Derive Mac Catalyst Product Bundle Identifier 设置为 NO。

9. 展开 Product Bundle Identifier 构建设置以查看其配置。在 Debug 配置旁边,单击 `+` 按钮以添加条件值。

10. 对于构建设置条件,从弹出菜单中选择 `Any macOS`。编辑条件构建设置的值以匹配您要使用的 macOS bundle 标识符。对项目中的所有配置重复此步骤。

11. 在 Signing & Capabilities 选项卡中,取消选中 Automatically 管理签名。

12. 对于您的macOS应用,请从 Provisioning Profile 弹出窗口中选择 Import Profile,然后选择您先前下载的配置文件。

网络

•  NSURLRequestReloadRevalidatingCacheData  和 NSURLRequestReloadIgnoringLocalAndRemoteCacheData  API 现在可用。
• 现在,所有带有 GET HTTP 方法且包含 body 的 NSURLSessionTask 实例都将产生错误  NSURLErrorDataLengthExceedsMaximum
弃用
• 删除了对用于 Proxy Automatic Configuration(PAC)的 FTP 和文件 URL 方案的支持。HTTP 和 HTTPS 是 PAC 唯一支持的 URL 方案。这会影响所有 PAC 配置,包括但不限于使用“设置”,“系统偏好设置”,配置文件,URLSession API(例如connectionProxyDictionary和CFNetworkExecuteProxyAutoConfigurationURL)设置的配置。
• 从 NSURLSession 和 NSURLConnection API 中删除了 SPDY 支持。服务器应使用 HTTP 2 或 HTTP 1.1。
• 现在不推荐使用 Network Kernel Extension API。

Photos

• 为了改善 Photos 升级体验,Photos 将使用 Photo Library 的克隆测试数据库升级。此克隆不包括每张照片的内容,但包括您库中每个人的面孔元数据和缩略图。它还包含元数据,例如 asset 名称和照片的地理位置。它是在  ~/Pictures/macOS 10.15  升级前备份中创建的,您可以随时手动删除此备份。在最终发行 macOS 10.15 之前,将自动删除该克隆。

Quartz Composer

弃用
• 从 macOS 10.15 开始,不推荐使用 Quartz Composer 框架,为了兼容起见,它仍然存在。请过渡到诸如 Core Image,SceneKit 或 Metal 的框架。 

脚本语言运行时

弃用
• macOS 中包含脚本语言运行时(例如Python,Ruby和Perl),以与旧版软件兼容。未来的macOS版本默认情况下将不包括脚本语言运行时,并且可能需要您安装其他软件包。如果您的软件取决于脚本语言,建议您在应用程序中捆绑运行时。
• 不建议使用 Python 2.7,因为此版本包含在 macOS 中以与旧版软件兼容。未来的 macOS 版本将不包含 Python 2.7。相反,建议您在 Terminal 中运行 python3。(51097165)

Xcode中

弃用
Xcode 不再提供对 Subversion 的命令行工具支持,包括 svn,git-svn 和相关命令。如果需要 Subversion 或相关的命令行工具,请通过运行  xcode-select --install  来安装“命令行工具”软件包。


 推荐↓↓↓ 

640?wx_fmt=jpeg

?16个技术公众号】都在这里!

涵盖:程序员大咖、源码共读、程序员共读、数据结构与算法、黑客技术和网络安全、大数据科技、编程前端、Java、Python、Web编程开发、Android、iOS开发、Linux、数据库研发、幽默程序员等。

640?wx_fmt=png
万水千山总是情,点个 “ 在看” 行不行
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值