Skip to main content
replaced http://stackoverflow.com/ with https://stackoverflow.com/
Source Link
URL Rewriter Bot
URL Rewriter Bot

Update: This issue has been fixed in Xcode 8.2. Keychain works in the simulator without enabling keychain sharing.

Why am I always receiving error -34018 when calling SecItemAdd function in Xcode 8 / iOS 10 simulator?

Steps to Reproduce

Create a new Single page iOS app project in Xcode 8. Run the following code in viewDidLoad (or open this Xcode project).

let itemKey = "My key"
let itemValue = "My secretive bee 🐝"

// Remove from Keychain
// ----------------

let queryDelete: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject
]

let resultCodeDelete = SecItemDelete(queryDelete as CFDictionary)

if resultCodeDelete != noErr {
  print("Error deleting from Keychain: \(resultCodeDelete)")
}


// Add to keychain
// ----------------

guard let valueData = itemValue.data(using: String.Encoding.utf8) else {
  print("🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣 Error saving text to Keychain")
  return
}

let queryAdd: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject,
  kSecValueData as String: valueData as AnyObject,
  kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked
]

let resultCode = SecItemAdd(queryAdd as CFDictionary, nil)

if resultCode != noErr {
  print("🐝🐝🐝🐝🐝🐝🐝🐝🐝 Error saving to Keychain: \(resultCode).")
} else {
  print("🍀🍀🍀🍀🍀🍀🍀🍀🍀 Saved to keychain successfully.")
}

Expected Results

Item is added to Keychain.

Actual Results

Function SecItemAdd returns the following error code: -34018.

Version

Xcode version 8.1 (8B62), macOS Sierra 10.12.1.

Configuration

Always occurs in Xcode 8 since Beta 2 when testing in an iOS 10 simulator.

Does NOT occur in Xcode 8 when testing in an iOS 9.3 simulator.

Demo

https://dl.dropboxusercontent.com/u/11143285/2016/07/KeychainBugDemo.zip

References

Radar: https://openradar.appspot.com/27422249

Apple Developer Forums: https://forums.developer.apple.com/message/179846

This issue is different from the following post because it occurs consistently in Xcode 8. SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)

Update: This issue has been fixed in Xcode 8.2. Keychain works in the simulator without enabling keychain sharing.

Why am I always receiving error -34018 when calling SecItemAdd function in Xcode 8 / iOS 10 simulator?

Steps to Reproduce

Create a new Single page iOS app project in Xcode 8. Run the following code in viewDidLoad (or open this Xcode project).

let itemKey = "My key"
let itemValue = "My secretive bee 🐝"

// Remove from Keychain
// ----------------

let queryDelete: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject
]

let resultCodeDelete = SecItemDelete(queryDelete as CFDictionary)

if resultCodeDelete != noErr {
  print("Error deleting from Keychain: \(resultCodeDelete)")
}


// Add to keychain
// ----------------

guard let valueData = itemValue.data(using: String.Encoding.utf8) else {
  print("🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣 Error saving text to Keychain")
  return
}

let queryAdd: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject,
  kSecValueData as String: valueData as AnyObject,
  kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked
]

let resultCode = SecItemAdd(queryAdd as CFDictionary, nil)

if resultCode != noErr {
  print("🐝🐝🐝🐝🐝🐝🐝🐝🐝 Error saving to Keychain: \(resultCode).")
} else {
  print("🍀🍀🍀🍀🍀🍀🍀🍀🍀 Saved to keychain successfully.")
}

Expected Results

Item is added to Keychain.

Actual Results

Function SecItemAdd returns the following error code: -34018.

Version

Xcode version 8.1 (8B62), macOS Sierra 10.12.1.

Configuration

Always occurs in Xcode 8 since Beta 2 when testing in an iOS 10 simulator.

Does NOT occur in Xcode 8 when testing in an iOS 9.3 simulator.

Demo

https://dl.dropboxusercontent.com/u/11143285/2016/07/KeychainBugDemo.zip

References

Radar: https://openradar.appspot.com/27422249

Apple Developer Forums: https://forums.developer.apple.com/message/179846

This issue is different from the following post because it occurs consistently in Xcode 8. SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)

Update: This issue has been fixed in Xcode 8.2. Keychain works in the simulator without enabling keychain sharing.

Why am I always receiving error -34018 when calling SecItemAdd function in Xcode 8 / iOS 10 simulator?

Steps to Reproduce

Create a new Single page iOS app project in Xcode 8. Run the following code in viewDidLoad (or open this Xcode project).

let itemKey = "My key"
let itemValue = "My secretive bee 🐝"

// Remove from Keychain
// ----------------

let queryDelete: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject
]

let resultCodeDelete = SecItemDelete(queryDelete as CFDictionary)

if resultCodeDelete != noErr {
  print("Error deleting from Keychain: \(resultCodeDelete)")
}


// Add to keychain
// ----------------

guard let valueData = itemValue.data(using: String.Encoding.utf8) else {
  print("🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣 Error saving text to Keychain")
  return
}

let queryAdd: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject,
  kSecValueData as String: valueData as AnyObject,
  kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked
]

let resultCode = SecItemAdd(queryAdd as CFDictionary, nil)

if resultCode != noErr {
  print("🐝🐝🐝🐝🐝🐝🐝🐝🐝 Error saving to Keychain: \(resultCode).")
} else {
  print("🍀🍀🍀🍀🍀🍀🍀🍀🍀 Saved to keychain successfully.")
}

Expected Results

Item is added to Keychain.

Actual Results

Function SecItemAdd returns the following error code: -34018.

Version

Xcode version 8.1 (8B62), macOS Sierra 10.12.1.

Configuration

Always occurs in Xcode 8 since Beta 2 when testing in an iOS 10 simulator.

Does NOT occur in Xcode 8 when testing in an iOS 9.3 simulator.

Demo

https://dl.dropboxusercontent.com/u/11143285/2016/07/KeychainBugDemo.zip

References

Radar: https://openradar.appspot.com/27422249

Apple Developer Forums: https://forums.developer.apple.com/message/179846

This issue is different from the following post because it occurs consistently in Xcode 8. SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)

added 55 characters in body
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177

Update: This issue has been fixed in Xcode 8.2. Keychain works in the simulator without enabling keychain sharing.

Why am I always receiving error -34018 when calling SecItemAdd function in Xcode 8 / iOS 10 simulator?

Steps to Reproduce

Create a new Single page iOS app project in Xcode 8. Run the following code in viewDidLoad (or open this Xcode project).

let itemKey = "My key"
let itemValue = "My secretive bee 🐝"

// Remove from Keychain
// ----------------

let queryDelete: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject
]

let resultCodeDelete = SecItemDelete(queryDelete as CFDictionary)

if resultCodeDelete != noErr {
  print("Error deleting from Keychain: \(resultCodeDelete)")
}


// Add to keychain
// ----------------

guard let valueData = itemValue.data(using: String.Encoding.utf8) else {
  print("🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣 Error saving text to Keychain")
  return
}

let queryAdd: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject,
  kSecValueData as String: valueData as AnyObject,
  kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked
]

let resultCode = SecItemAdd(queryAdd as CFDictionary, nil)

if resultCode != noErr {
  print("🐝🐝🐝🐝🐝🐝🐝🐝🐝 Error saving to Keychain: \(resultCode).")
} else {
  print("🍀🍀🍀🍀🍀🍀🍀🍀🍀 Saved to keychain successfully.")
}

Expected Results

Item is added to Keychain.

Actual Results

Function SecItemAdd returns the following error code: -34018.

Version

Xcode version 8.1 (8B62), macOS Sierra 10.12.1.

Configuration

Always occurs in Xcode 8 since Beta 2 when testing in an iOS 10 simulator.

Does NOT occur in Xcode 8 when testing in an iOS 9.3 simulator.

Demo

https://dl.dropboxusercontent.com/u/11143285/2016/07/KeychainBugDemo.zip

References

Radar: https://openradar.appspot.com/27422249

Apple Developer Forums: https://forums.developer.apple.com/message/179846

This issue is different from the following post because it occurs consistently in Xcode 8. SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)

Why am I always receiving error -34018 when calling SecItemAdd function in Xcode 8 / iOS 10 simulator?

Steps to Reproduce

Create a new Single page iOS app project in Xcode 8. Run the following code in viewDidLoad (or open this Xcode project).

let itemKey = "My key"
let itemValue = "My secretive bee 🐝"

// Remove from Keychain
// ----------------

let queryDelete: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject
]

let resultCodeDelete = SecItemDelete(queryDelete as CFDictionary)

if resultCodeDelete != noErr {
  print("Error deleting from Keychain: \(resultCodeDelete)")
}


// Add to keychain
// ----------------

guard let valueData = itemValue.data(using: String.Encoding.utf8) else {
  print("🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣 Error saving text to Keychain")
  return
}

let queryAdd: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject,
  kSecValueData as String: valueData as AnyObject,
  kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked
]

let resultCode = SecItemAdd(queryAdd as CFDictionary, nil)

if resultCode != noErr {
  print("🐝🐝🐝🐝🐝🐝🐝🐝🐝 Error saving to Keychain: \(resultCode).")
} else {
  print("🍀🍀🍀🍀🍀🍀🍀🍀🍀 Saved to keychain successfully.")
}

Expected Results

Item is added to Keychain.

Actual Results

Function SecItemAdd returns the following error code: -34018.

Version

Xcode version 8.1 (8B62), macOS Sierra 10.12.1.

Configuration

Always occurs in Xcode 8 since Beta 2 when testing in an iOS 10 simulator.

Does NOT occur in Xcode 8 when testing in an iOS 9.3 simulator.

Demo

https://dl.dropboxusercontent.com/u/11143285/2016/07/KeychainBugDemo.zip

References

Radar: https://openradar.appspot.com/27422249

Apple Developer Forums: https://forums.developer.apple.com/message/179846

This issue is different from the following post because it occurs consistently in Xcode 8. SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)

Update: This issue has been fixed in Xcode 8.2. Keychain works in the simulator without enabling keychain sharing.

Why am I always receiving error -34018 when calling SecItemAdd function in Xcode 8 / iOS 10 simulator?

Steps to Reproduce

Create a new Single page iOS app project in Xcode 8. Run the following code in viewDidLoad (or open this Xcode project).

let itemKey = "My key"
let itemValue = "My secretive bee 🐝"

// Remove from Keychain
// ----------------

let queryDelete: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject
]

let resultCodeDelete = SecItemDelete(queryDelete as CFDictionary)

if resultCodeDelete != noErr {
  print("Error deleting from Keychain: \(resultCodeDelete)")
}


// Add to keychain
// ----------------

guard let valueData = itemValue.data(using: String.Encoding.utf8) else {
  print("🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣 Error saving text to Keychain")
  return
}

let queryAdd: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject,
  kSecValueData as String: valueData as AnyObject,
  kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked
]

let resultCode = SecItemAdd(queryAdd as CFDictionary, nil)

if resultCode != noErr {
  print("🐝🐝🐝🐝🐝🐝🐝🐝🐝 Error saving to Keychain: \(resultCode).")
} else {
  print("🍀🍀🍀🍀🍀🍀🍀🍀🍀 Saved to keychain successfully.")
}

Expected Results

Item is added to Keychain.

Actual Results

Function SecItemAdd returns the following error code: -34018.

Version

Xcode version 8.1 (8B62), macOS Sierra 10.12.1.

Configuration

Always occurs in Xcode 8 since Beta 2 when testing in an iOS 10 simulator.

Does NOT occur in Xcode 8 when testing in an iOS 9.3 simulator.

Demo

https://dl.dropboxusercontent.com/u/11143285/2016/07/KeychainBugDemo.zip

References

Radar: https://openradar.appspot.com/27422249

Apple Developer Forums: https://forums.developer.apple.com/message/179846

This issue is different from the following post because it occurs consistently in Xcode 8. SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)

deleted 28 characters in body
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177

Why am I always receiving error -34018 when calling SecItemAdd function in Xcode 8 / iOS 10 simulator?

Steps to Reproduce

Create a new Single page iOS app project in Xcode 8. Run the following code in viewDidLoad (or open this Xcode project).

let itemKey = "My key"
let itemValue = "My secretive bee 🐝"

// Remove from Keychain
// ----------------

let queryDelete: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject
]

let resultCodeDelete = SecItemDelete(queryDelete as CFDictionary)

if resultCodeDelete != noErr {
  print("Error deleting from Keychain: \(resultCodeDelete)")
}


// Add to keychain
// ----------------

guard let valueData = itemValue.data(using: String.Encoding.utf8) else {
  print("🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣 Error saving text to Keychain")
  return
}

let queryAdd: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject,
  kSecValueData as String: valueData as AnyObject,
  kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked
]

let resultCode = SecItemAdd(queryAdd as CFDictionary, nil)

if resultCode != noErr {
  print("🐝🐝🐝🐝🐝🐝🐝🐝🐝 Error saving to Keychain: \(resultCode).")
} else {
  print("🍀🍀🍀🍀🍀🍀🍀🍀🍀 Saved to keychain successfully.")
}

Expected Results

Item is added to Keychain.

Actual Results

Function SecItemAdd returns the following error code: -34018.

Version

Xcode version 8.1 (8B62), macOS Sierra 10.12.1.

Configuration

Always occurs in Xcode 8 since Beta 2 including the final release when testing in an iOS 10 simulator.

Does NOT occur in Xcode 8 when testing in an iOS 9.3 simulator.

Demo

https://dl.dropboxusercontent.com/u/11143285/2016/07/KeychainBugDemo.zip

References

Radar: https://openradar.appspot.com/27422249

Apple Developer Forums: https://forums.developer.apple.com/message/179846

This issue is different from the following post because it occurs consistently in Xcode 8. SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)

Why am I always receiving error -34018 when calling SecItemAdd function in Xcode 8 / iOS 10 simulator?

Steps to Reproduce

Create a new Single page iOS app project in Xcode 8. Run the following code in viewDidLoad (or open this Xcode project).

let itemKey = "My key"
let itemValue = "My secretive bee 🐝"

// Remove from Keychain
// ----------------

let queryDelete: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject
]

let resultCodeDelete = SecItemDelete(queryDelete as CFDictionary)

if resultCodeDelete != noErr {
  print("Error deleting from Keychain: \(resultCodeDelete)")
}


// Add to keychain
// ----------------

guard let valueData = itemValue.data(using: String.Encoding.utf8) else {
  print("🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣 Error saving text to Keychain")
  return
}

let queryAdd: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject,
  kSecValueData as String: valueData as AnyObject,
  kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked
]

let resultCode = SecItemAdd(queryAdd as CFDictionary, nil)

if resultCode != noErr {
  print("🐝🐝🐝🐝🐝🐝🐝🐝🐝 Error saving to Keychain: \(resultCode).")
} else {
  print("🍀🍀🍀🍀🍀🍀🍀🍀🍀 Saved to keychain successfully.")
}

Expected Results

Item is added to Keychain.

Actual Results

Function SecItemAdd returns the following error code: -34018.

Version

Xcode version 8.1 (8B62), macOS Sierra 10.12.1.

Configuration

Always occurs in Xcode 8 since Beta 2 including the final release when testing in an iOS 10 simulator.

Does NOT occur in Xcode 8 when testing in an iOS 9.3 simulator.

Demo

https://dl.dropboxusercontent.com/u/11143285/2016/07/KeychainBugDemo.zip

References

Radar: https://openradar.appspot.com/27422249

Apple Developer Forums: https://forums.developer.apple.com/message/179846

This issue is different from the following post because it occurs consistently in Xcode 8. SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)

Why am I always receiving error -34018 when calling SecItemAdd function in Xcode 8 / iOS 10 simulator?

Steps to Reproduce

Create a new Single page iOS app project in Xcode 8. Run the following code in viewDidLoad (or open this Xcode project).

let itemKey = "My key"
let itemValue = "My secretive bee 🐝"

// Remove from Keychain
// ----------------

let queryDelete: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject
]

let resultCodeDelete = SecItemDelete(queryDelete as CFDictionary)

if resultCodeDelete != noErr {
  print("Error deleting from Keychain: \(resultCodeDelete)")
}


// Add to keychain
// ----------------

guard let valueData = itemValue.data(using: String.Encoding.utf8) else {
  print("🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣 Error saving text to Keychain")
  return
}

let queryAdd: [String: AnyObject] = [
  kSecClass as String: kSecClassGenericPassword,
  kSecAttrAccount as String: itemKey as AnyObject,
  kSecValueData as String: valueData as AnyObject,
  kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked
]

let resultCode = SecItemAdd(queryAdd as CFDictionary, nil)

if resultCode != noErr {
  print("🐝🐝🐝🐝🐝🐝🐝🐝🐝 Error saving to Keychain: \(resultCode).")
} else {
  print("🍀🍀🍀🍀🍀🍀🍀🍀🍀 Saved to keychain successfully.")
}

Expected Results

Item is added to Keychain.

Actual Results

Function SecItemAdd returns the following error code: -34018.

Version

Xcode version 8.1 (8B62), macOS Sierra 10.12.1.

Configuration

Always occurs in Xcode 8 since Beta 2 when testing in an iOS 10 simulator.

Does NOT occur in Xcode 8 when testing in an iOS 9.3 simulator.

Demo

https://dl.dropboxusercontent.com/u/11143285/2016/07/KeychainBugDemo.zip

References

Radar: https://openradar.appspot.com/27422249

Apple Developer Forums: https://forums.developer.apple.com/message/179846

This issue is different from the following post because it occurs consistently in Xcode 8. SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)

deleted 16 characters in body
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading
added 1 character in body
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading
added 1 character in body
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading
deleted 1 character in body
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading
added 39 characters in body
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading
added xcode8 tag / removed swift tag because this is independent of Swift
Link
john.k.doe
  • 7.6k
  • 3
  • 39
  • 64
Loading
added 1 character in body
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading
deleted 101 characters in body; edited title
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading
edited body
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading
added 1 character in body
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading
added 14 characters in body; edited title
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading
deleted 2 characters in body
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading
Source Link
Evgenii
  • 37.5k
  • 30
  • 143
  • 177
Loading