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

Objective c 由于CoreBluetooth委托方法,基于Travis CI的iOS构建失败,objective-c,travis-ci,core-bluetooth,xcodebuild,xctool,Objective C,Travis Ci,Core Bluetooth,Xcodebuild,Xctool,我刚刚在Travis的基础上建立了我的公共存储库。它是一个iOS库,还利用了CoreBlueoth的委托方法。其中一个看起来像这样: - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNu

我刚刚在Travis的基础上建立了我的公共存储库。它是一个iOS库,还利用了CoreBlueoth的委托方法。其中一个看起来像这样:

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI
-(无效)中央管理器:(CBCentralManager*)中央发现外围设备:(CBPeripheral*)外围广告数据:(NSDictionary*)广告数据RSSI:(NSNumber*)RSSI

当它包含在要生成的代码中时,它会导致Travis生成失败,因为在
NSDictionary发现Travis CI默认OS X生成使用旧的Xcode版本(Xcode 6.1)–正如@fullofsquirres建议的那样

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

osx_image: xcode7.2

希望这对别人有帮助

您的Travis实例是否可以运行不同版本的Xcode工具?有一段时间我们遇到了这个问题,我们的开发人员使用Xcode 7.x,我们的构建机器停留在6.3;很多新的Xcode 7自动完成代码只是简单地破坏了Xcode 6.3(比如“_Nonnull”)。@fullofsquirres啊。。。显然,默认值是Xcode 6.1。我现在将尝试指定一个版本,并让您知道!谢谢你的建议。