XCode 14构建错误:无法用@available标记存储属性为潜在不可用
这个错误通常是@stripe/stripe-react-native库版本与iOS部署目标、Xcode版本不兼容,或是库内部存在语法兼容问题导致的,以下是几个可行的解决步骤:
更新到最新稳定版库
旧版本的stripe-react-native可能存在这个iOS语法兼容bug,执行命令更新库:npm install @stripe/stripe-react-native@latest # 或使用yarn yarn add @stripe/stripe-react-native@latest更新后进入ios目录执行
pod install,再尝试构建项目。确认iOS部署目标版本
stripe-react-native对iOS最低版本有要求(当前一般需要iOS 13.0及以上),检查并修改:- 打开Xcode,选中项目target,在"General"标签下确认"Deployment Info"的iOS版本不低于要求;
- 或者修改ios/Podfile中的
platform :ios, '13.0',保存后执行pod install。
清理构建缓存
缓存残留可能导致旧代码干扰,执行以下操作:- 关闭Xcode;
- 删除Derived Data(路径可通过Xcode -> Preferences -> Locations查看);
- 进入ios目录执行
pod deintegrate && pod install; - 重新打开Xcode并构建项目。
升级Xcode版本
低版本Xcode对新Swift语法支持不足,确保你的Xcode版本符合库的要求(建议使用Xcode 14.0及以上版本),前往App Store或Apple开发者官网下载最新兼容版本。临时修复库代码(仅作为最后手段)
如果上述方法都无效,可手动修改报错的stripe库文件:
找到报错的.swift文件(Xcode报错信息会显示路径),将带有@available标记的存储属性改为计算属性。例如:
原代码:@available(iOS 14.0, *) private let someProperty: SomeType修改为:
@available(iOS 14.0, *) private var someProperty: SomeType { return SomeType(/* 原初始化参数 */) }注意:这种修改会在下次更新库时被覆盖,仅作为临时解决方案。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

