Mac Catalyst教程Recipes项目编译报错:authorizationStatus(for:)版本问题
Mac Catalyst项目编译报错的解决方法
针对你编译Recipes项目时遇到的'authorizationStatus(for:)' is only available in Mac Catalyst 14.0 or newer报错,整理以下问题原因及解决办法:
原因1:Mac Catalyst独立部署目标未设置正确
你检查的是macOS版本,但Mac Catalyst有单独的部署目标配置项,和macOS的设置不是一回事,这是最常见的问题。
解决步骤:
- 选中Xcode导航栏最顶部的项目蓝色图标
- 切换到你要编译的Target(比如Recipes)
- 打开General标签页,找到Deployment Info区域
- 在Mac Catalyst的版本下拉菜单中选择14.0或更高版本
原因2:代码未做版本兼容性适配
即便部署目标设对了,如果直接调用高版本API且没做版本判断,Xcode的严格检查会触发报错。
解决步骤:
在调用authorizationStatus(for:)的代码块外加上版本判断:
if #available(macCatalyst 14.0, *) { // 这里放调用authorizationStatus(for:)的代码 } else { // 低版本的兼容逻辑,比如给用户权限提示或者默认状态 }
原因3:Xcode缓存导致设置不生效
旧的编译缓存可能让新的版本设置无法生效。
解决步骤:
- 按
Shift+Command+K清理编译文件夹 - 关闭Xcode,找到项目的
DerivedData文件夹并删除(路径可在Xcode偏好设置的Locations里查看) - 重新打开项目编译
原因4:依赖库的部署目标拖后腿
如果用了CocoaPods等工具,依赖库的Mac Catalyst版本可能低于14.0,导致整体项目不满足要求。
解决步骤:
- 打开项目的
Podfile,添加以下配置:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '11.0' end end end
- 终端执行
pod install重新安装依赖
内容的提问来源于stack exchange,提问作者Dr. Octopus
相关产品推荐
相关产品推荐

