我刚刚建立了我的公共存储库以构建Travis。它是一个iOS库,也使用CoreBlueooth的委托方法。其中一个看起来像这样:
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI
当它包含在要构建的代码中时,它会导致Travis因构建期望'&gt;'而导致构建失败在NSDictionary<NSString *
之后(假设因为它不喜欢NSDictionary键定义中的指针*
)。但是,这是CBCentralManager
的委托方法,因此显然语法正确。
这在我的机器上编译很好,当特定方法实现被注释掉时,一切运行正常(包括其他CoreBluetooth委托方法)。这看起来像某种语法问题,但在我的结尾编译好了吗?
答案 0 :(得分:1)
根据@fullofsquirrels的建议,Travis CI默认OS X版本使用旧的Xcode版本(Xcode 6.1)。
这会导致新语法出现问题,并且在这种情况下会导致构建失败。更新.travis.yml
文件以指定要使用的版本修复了该问题,如下所示:
osx_image: xcode7.2
希望这有助于某人!