Сборка iOS на Travis CI Сбой из-за метода делегирования CoreBluetooth

Я только что создал свой общедоступный репозиторий, основанный на Трэвисе. Это библиотека iOS, которая также использует методы делегирования CoreBlueooth. Один из которых выглядит так:

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI

Когда он включен в код для сборки, он приводит к сбою сборки из-за того, что Travis ожидает '>' после NSDictionary<NSString * (предположительно, потому что он не любит указатель * знак внутри определения ключа NSDictionary). Тем не менее, это метод делегата для CBCentralManager, так что, очевидно, синтаксически правильно.

Это прекрасно компилируется на моей машине, и когда закомментирована конкретная реализация метода, все работает нормально (включая другие методы делегирования CoreBluetooth). Это похоже на некоторую проблему синтаксиса, но компилируется нормально с моей стороны?

1 ответ

Оказывается, Travis CI по умолчанию строит OS X, чтобы использовать старую версию XCode (XCode 6.1) - как предложено @fullofsquirrels.

Это вызывает проблемы с новым синтаксисом, и в этом случае причиной сбоя сборки. Обновление .travis.yml файл, чтобы указать версию для использования исправлена ​​проблема, следующим образом:

osx_image: xcode7.2

Надеюсь, это поможет кому-то!

Другие вопросы по тегам