由于CoreBluetooth委托方法,Travis CI上的iOS构建失败

时间:2016-03-14 18:30:06

标签: objective-c travis-ci core-bluetooth xcodebuild xctool

我刚刚建立了我的公共存储库以构建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委托方法)。这看起来像某种语法问题,但在我的结尾编译好了吗?

1 个答案:

答案 0 :(得分:1)

根据@fullofsquirrels的建议,Travis CI默认OS X版本使用旧的Xcode版本(Xcode 6.1)。

这会导致新语法出现问题,并且在这种情况下会导致构建失败。更新.travis.yml文件以指定要使用的版本修复了该问题,如下所示:

osx_image: xcode7.2

希望这有助于某人!