             query[kSecAttrProtocol as String] = protocolType.rawValue
             query[kSecAttrAuthenticationType as String] = authenticationType.rawValue
         }
-        
-        #if os(iOS)
-        if #available(iOS 8.0, *) {
+
+        if #available(iOS 8.0, OSX 10.10, *) {
             if authenticationPrompt != nil {
                 query[kSecUseOperationPrompt as String] = authenticationPrompt
             }
         }
-        #endif
         
         return query
     }

        options.accessibility = accessibility
        return Keychain(options)
    }
    
    @available(iOS, introduced=8.0)
    @available(OSX, introduced=10.10)
    public func accessibility(accessibility: Accessibility, authenticationPolicy: AuthenticationPolicy) -> Keychain {
        var options = self.options
        options.accessibility = accessibility

        case Always:
            return kSecAttrAccessibleAlways as String
        case WhenPasscodeSetThisDeviceOnly:
            if #available(iOS 8.0, OSX 10.10, *) {
                return kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly as String
            } else {
                fatalError("'Accessibility.WhenPasscodeSetThisDeviceOnly' is not available on this version of OS.")
            }
        case WhenUnlockedThisDeviceOnly:
            return kSecAttrAccessibleWhenUnlockedThisDeviceOnly as String
