Unity转Xcode语义问题求助:iOS打包归档时报错
解决Xcode 13.0 Beta归档时的语义错误问题
针对你这段Objective-C代码出现的语义错误,试试以下几种解决方式:
给if语句添加大括号
虽然Objective-C允许单行if省略大括号,但Xcode Beta版本的编译器可能对这种写法存在解析bug,添加大括号后重新构建:if (@available(iOS 15.0, tvOS 15.0, *)) { _displayLink.preferredFrameRateRange = CAFrameRateRangeMake(targetFPS, targetFPS, targetFPS); }检查targetFPS的类型
CAFrameRateRangeMake的三个参数要求是double类型,如果targetFPS是整数类型(比如int),强制转换为double后再传入:if (@available(iOS 15.0, tvOS 15.0, *)) { _displayLink.preferredFrameRateRange = CAFrameRateRangeMake((double)targetFPS, (double)targetFPS, (double)targetFPS); }改用CAFrameRateRange的初始化方法
尝试替换掉CAFrameRateRangeMake函数,使用Objective-C的初始化方法创建实例,避免函数定义的兼容性问题:if (@available(iOS 15.0, tvOS 15.0, *)) { _displayLink.preferredFrameRateRange = [[CAFrameRateRange alloc] initWithMinimum:targetFPS maximum:targetFPS preferred:targetFPS]; }清理项目缓存后重新构建
- 按下
Command + Shift + K清理构建文件夹 - 重启Xcode
- 重新执行归档操作
- 按下
内容的提问来源于stack exchange,提问作者Suleman Mohyudin
相关产品推荐
相关产品推荐

