Сборка 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
Надеюсь, это поможет кому-то!