Я только что создал свой публичный репозиторий, чтобы построить на Travis. Это iOS-библиотека, которая также использует методы делегирования CoreBlueooth. Один из них выглядит следующим образом:iOS Построить на Travis CI Не удалось из-за метода делегирования CoreBluetooth
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI
Когда он включен в код будет построен, он вызывает Travis сбой сборки из-за его ожидали «>» после NSDictionary<NSString *
(предположительно, потому что он не любит указатель *
знак внутри определения ключа NSDictionary). Однако это метод делегирования для CBCentralManager
, поэтому он явно синтаксически корректен.
Это компилируется на моей машине, и когда конкретная реализация метода закомментирована, все работает нормально (включая другие методы делегирования CoreBluetooth). Это похоже на какую-то проблему синтаксиса, но компилирует на моем конце?
Может ли ваш экземпляр Travis запускать другую версию инструментов Xcode? Некоторое время у нас была эта проблема, когда наши разработчики использовали Xcode 7.x, и наша машина для сборки застряла в 6.3; много нового кода автозавершения Xcode 7 просто пробил Xcode 6.3 (например, «_Nonnull»). – fullofsquirrels
@fullofsquirrels ах ... видимо, по умолчанию это Xcode 6.1. Я попробую указать версию сейчас и дам вам знать! Спасибо за предложение. –