             stateChanged(state)
         }
         
-        @objc
+        #if swift(>=3.2) // Only with Xcode 9 SDK
+        @objc(peripheralManager:willRestoreState:)
         public func peripheralManager(_ peripheral: CBPeripheralManager, willRestoreState state: [String : Any]) {
             
             log?("Will restore state \(state)")
         }
+        #endif
         
         @objc(peripheralManagerDidStartAdvertising:error:)
         public func peripheralManagerDidStartAdvertising(_ peripheral: CBPeripheralManager, error: Error?) {

                
                self.notifyQueue.removeFirst()
                
                self.notify(pendingNotification.data, for: pendingNotification.characteristic)
            }
        }
    }

            internalManager.respond(to: requests[0], withResult: .success)
        }
        
        @objc(peripheralManager:central:didSubscribeToCharacteristic:)
        public func peripheralManager(_ peripheral: CBPeripheralManager, central: CBCentral, didSubscribeTo characteristic: CBCharacteristic) {
            
            log?("Central \(central.gattIdentifier) did subscribe to \(characteristic.uuid)")
