我一直在尝试编译一个已经存在的iOS项目,该项目包含Apple Watch扩展的目标。
该项目使用RxSwift/RxCocoa,从官方文档中可以看出,它与watchOS兼容。
该项目在Apple Watch模拟器上成功编译和运行,但在真正的Apple Watch上失败,出现以下错误:
Cannot find 'CGRectType' in scope
Cannot find 'CGPointType' in scope
Cannot find 'CGSizeType' in scope
原因是在RxCocoa内部的类扩展中声明的这三个常量是这样声明的:
#if arch(x86_64) || arch(arm64)
let CGRectType = "{CGRect={CGPoint=dd}{CGSize=dd}}"
let CGSizeType = "{CGSize=dd}"
let CGPointType = "{CGPoint=dd}"
#elseif arch(i386) || arch(arm)
let CGRectType = "{CGRect={CGPoint=ff}{CGSize=ff}}"
let CGSizeType = "{CGSize=ff}"
let CGPointType = "{CGPoint=ff}"
#endif
你知道是否有任何方法可以让它工作吗,因为这个库应该与watchOS兼容?
我猜您仍在使用旧版本的库(与最新版本的watchOS不兼容(
图书馆的正确定义应该是类似的东西
#if arch(x86_64) || arch(arm64)
let CGRectType = "{CGRect={CGPoint=dd}{CGSize=dd}}"
let CGSizeType = "{CGSize=dd}"
let CGPointType = "{CGPoint=dd}"
#elseif arch(i386) || arch(arm) || arch(arm64_32)
let CGRectType = "{CGRect={CGPoint=ff}{CGSize=ff}}"
let CGSizeType = "{CGSize=ff}"
let CGPointType = "{CGPoint=ff}"
#endif
根据这两个讨论线程在图书馆网站
修复新arm64_32架构的构建
Xcode 10 GM:使用未解析的标识符"CGRectType">
它应该在最新版本的库中修复