Build Information
Successful build of EFStorage, reference master (05b45b), with Swift 6.4 for macOS (SPM) on 19 Sep 2026 02:38:20 UTC.
Swift 6 data race errors: 0
Build Command
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/EFPrefix/EFStorage.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/EFPrefix/EFStorage
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 05b45b2 0.4.1
Cloned https://github.com/EFPrefix/EFStorage.git
Revision (git rev-parse @):
05b45b2f7acef73ca8021fdb9e1ab13e7af7f690
SUCCESS checkout https://github.com/EFPrefix/EFStorage.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.4
Building package at path: $PWD
https://github.com/EFPrefix/EFStorage.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Pre-planning 1 / 330]
[Planning deferred tasks]
[51 / 105]
[57 / 107] EFStorageCore
[74 / 186]
[80 / 197]
[90 / 197]
[94 / 197]
[95 / 197]
[100 / 197]
[107 / 197]
[114 / 197]
[116 / 197]
[122 / 197]
[127 / 197]
[128 / 197]
[130 / 197]
[135 / 197]
[137 / 197]
[140 / 197] YYCache
[141 / 197]
[150 / 197]
[159 / 198]
[167 / 204]
[172 / 205] EFStorageYYCache
[175 / 212] EFStorageYYCache
[181 / 218] EFStorageYYCache-product
[196 / 218] EFStorageUserDefaults
[203 / 218] EFStorageYYCache
[213 / 218] KeychainAccess
Build complete! (7.56 sec)
Fetching https://github.com/EFPrefix/YYCache.git
Fetching https://github.com/kishikawakatsumi/KeychainAccess.git
[1/4388] Fetching keychainaccess
[45/4860] Fetching keychainaccess, yycache
Fetched https://github.com/EFPrefix/YYCache.git (1.61s)
Fetched https://github.com/kishikawakatsumi/KeychainAccess.git (1.61s)
Computing version for https://github.com/EFPrefix/YYCache.git
Computed https://github.com/EFPrefix/YYCache.git at 1.0.5 (2.28s)
Computing version for https://github.com/kishikawakatsumi/KeychainAccess.git
Computed https://github.com/kishikawakatsumi/KeychainAccess.git at 3.2.1 (0.62s)
Creating working copy for https://github.com/kishikawakatsumi/KeychainAccess.git
Working copy of https://github.com/kishikawakatsumi/KeychainAccess.git resolved at 3.2.1
Creating working copy for https://github.com/EFPrefix/YYCache.git
Working copy of https://github.com/EFPrefix/YYCache.git resolved at 1.0.5
/Users/admin/builder/spi-builder-workspace/Sources/EFStorageYYCache/EFStorage+YYCache.swift:15:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'YYCache' to imported protocols 'EFFailableUnderlyingStorage', 'EFUnderlyingStorage'; this will not behave correctly if the owners of 'YYCache' introduce this conformance in the future[0;0m
[0;36m13 |[0;0m #endif
[0;36m14 |[0;0m
[0;36m15 |[0;0m extension YYCache: EFFailableUnderlyingStorage {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'YYCache' to imported protocols 'EFFailableUnderlyingStorage', 'EFUnderlyingStorage'; this will not behave correctly if the owners of 'YYCache' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m16 |[0;0m private static let name = Bundle.main.bundleIdentifier ?? "EFStorage"
[0;36m17 |[0;0m private static let shared: YYCache? = YYCache(name: name)
/Users/admin/builder/spi-builder-workspace/Sources/EFStorageKeychainAccess/EFStorage+KeychainAccess.swift:14:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'Keychain' to imported protocols 'EFUnderlyingStorage', 'Equatable'; this will not behave correctly if the owners of 'KeychainAccess' introduce this conformance in the future[0;0m
[0;36m12 |[0;0m #endif
[0;36m13 |[0;0m
[0;36m14 |[0;0m extension Keychain: EFUnderlyingStorage {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'Keychain' to imported protocols 'EFUnderlyingStorage', 'Equatable'; this will not behave correctly if the owners of 'KeychainAccess' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m15 |[0;0m public dynamic class func makeDefault() -> Self {
[0;36m16 |[0;0m return Self()
/Users/admin/builder/spi-builder-workspace/Sources/EFStorageUserDefaults/EFStorage+UserDefaults.swift:13:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'UserDefaults' to imported protocol 'EFUnderlyingStorage'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future[0;0m
[0;36m11 |[0;0m #endif
[0;36m12 |[0;0m
[0;36m13 |[0;0m extension UserDefaults: EFUnderlyingStorage {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'UserDefaults' to imported protocol 'EFUnderlyingStorage'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m14 |[0;0m public static var shared: UserDefaults = UserDefaults.standard
[0;36m15 |[0;0m public dynamic class func makeDefault() -> Self {
/Users/admin/builder/spi-builder-workspace/Sources/EFStorageYYCache/EFStorage+YYCache.swift:15:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'YYCache' to imported protocols 'EFFailableUnderlyingStorage', 'EFUnderlyingStorage'; this will not behave correctly if the owners of 'YYCache' introduce this conformance in the future[0;0m
[0;36m13 |[0;0m #endif
[0;36m14 |[0;0m
[0;36m15 |[0;0m extension YYCache: EFFailableUnderlyingStorage {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'YYCache' to imported protocols 'EFFailableUnderlyingStorage', 'EFUnderlyingStorage'; this will not behave correctly if the owners of 'YYCache' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m16 |[0;0m private static let name = Bundle.main.bundleIdentifier ?? "EFStorage"
[0;36m17 |[0;0m private static let shared: YYCache? = YYCache(name: name)
/Users/admin/builder/spi-builder-workspace/Sources/EFStorageUserDefaults/UserDefaults+NSCoding.swift:12:32: [1;33mwarning: [1;39m'archivedData(withRootObject:)' was deprecated in macOS 10.14: Use +archivedDataWithRootObject:requiringSecureCoding:error: instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m10 |[0;0m public extension UserDefaultsStorable where Self: NSCoding {
[0;36m11 |[0;0m func asUserDefaultsStorable() -> Result<AsIsUserDefaultsStorable, Error> {
[0;36m12 |[0;0m return NSKeyedArchiver.archivedData(withRootObject: self).asUserDefaultsStorable()
[0;36m|[0;0m `- [1;33mwarning: [1;39m'archivedData(withRootObject:)' was deprecated in macOS 10.14: Use +archivedDataWithRootObject:requiringSecureCoding:error: instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m13 |[0;0m }
[0;36m14 |[0;0m static func fromUserDefaults(_ userDefaults: UserDefaults, forKey key: String) -> Self? {
/Users/admin/builder/spi-builder-workspace/Sources/EFStorageUserDefaults/UserDefaults+NSCoding.swift:16:34: [1;33mwarning: [1;39m'unarchiveObject(with:)' was deprecated in macOS 10.14: Use +unarchivedObjectOfClass:fromData:error: instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m14 |[0;0m static func fromUserDefaults(_ userDefaults: UserDefaults, forKey key: String) -> Self? {
[0;36m15 |[0;0m guard let data = userDefaults.data(forKey: key) else { return nil }
[0;36m16 |[0;0m return NSKeyedUnarchiver.unarchiveObject(with: data) as? Self
[0;36m|[0;0m `- [1;33mwarning: [1;39m'unarchiveObject(with:)' was deprecated in macOS 10.14: Use +unarchivedObjectOfClass:fromData:error: instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m17 |[0;0m }
[0;36m18 |[0;0m }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
/Users/admin/builder/spi-builder-workspace/Sources/EFStorageUserDefaults/EFStorage+UserDefaults.swift:13:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'UserDefaults' to imported protocol 'EFUnderlyingStorage'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future[0;0m
[0;36m11 |[0;0m #endif
[0;36m12 |[0;0m
[0;36m13 |[0;0m extension UserDefaults: EFUnderlyingStorage {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'UserDefaults' to imported protocol 'EFUnderlyingStorage'; this will not behave correctly if the owners of 'Foundation' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m14 |[0;0m public static var shared: UserDefaults = UserDefaults.standard
[0;36m15 |[0;0m public dynamic class func makeDefault() -> Self {
/Users/admin/builder/spi-builder-workspace/Sources/EFStorageKeychainAccess/KeychainAccess+NSCoding.swift:13:47: [1;33mwarning: [1;39m'archivedData(withRootObject:)' was deprecated in macOS 10.14: Use +archivedDataWithRootObject:requiringSecureCoding:error: instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m11 |[0;0m public extension KeychainAccessStorable where Self: NSCoding {
[0;36m12 |[0;0m func asKeychainAccessStorable() -> Result<AsIsKeychainAccessStorable, Error> {
[0;36m13 |[0;0m return .success(.data(NSKeyedArchiver.archivedData(withRootObject: self)))
[0;36m|[0;0m `- [1;33mwarning: [1;39m'archivedData(withRootObject:)' was deprecated in macOS 10.14: Use +archivedDataWithRootObject:requiringSecureCoding:error: instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m14 |[0;0m }
[0;36m15 |[0;0m static func fromKeychain(_ keychain: Keychain, forKey key: String) -> Self? {
/Users/admin/builder/spi-builder-workspace/Sources/EFStorageKeychainAccess/KeychainAccess+NSCoding.swift:17:34: [1;33mwarning: [1;39m'unarchiveObject(with:)' was deprecated in macOS 10.14: Use +unarchivedObjectOfClass:fromData:error: instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m15 |[0;0m static func fromKeychain(_ keychain: Keychain, forKey key: String) -> Self? {
[0;36m16 |[0;0m guard let data = try? keychain.getData(key) else { return nil }
[0;36m17 |[0;0m return NSKeyedUnarchiver.unarchiveObject(with: data) as? Self
[0;36m|[0;0m `- [1;33mwarning: [1;39m'unarchiveObject(with:)' was deprecated in macOS 10.14: Use +unarchivedObjectOfClass:fromData:error: instead[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
[0;36m18 |[0;0m }
[0;36m19 |[0;0m }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
/Users/admin/builder/spi-builder-workspace/Sources/EFStorageKeychainAccess/EFStorage+KeychainAccess.swift:14:1: [1;33mwarning: [1;39mextension declares a conformance of imported type 'Keychain' to imported protocols 'EFUnderlyingStorage', 'Equatable'; this will not behave correctly if the owners of 'KeychainAccess' introduce this conformance in the future[0;0m
[0;36m12 |[0;0m #endif
[0;36m13 |[0;0m
[0;36m14 |[0;0m extension Keychain: EFUnderlyingStorage {
[0;36m|[0;0m |- [1;33mwarning: [1;39mextension declares a conformance of imported type 'Keychain' to imported protocols 'EFUnderlyingStorage', 'Equatable'; this will not behave correctly if the owners of 'KeychainAccess' introduce this conformance in the future[0;0m
[0;36m|[0;0m `- [1;39mnote: [1;39madd '@retroactive' to silence this warning[0;0m
[0;36m15 |[0;0m public dynamic class func makeDefault() -> Self {
[0;36m16 |[0;0m return Self()
Build complete.
{
"dependencies" : [
{
"identity" : "keychainaccess",
"requirement" : {
"range" : [
{
"lower_bound" : "3.2.0",
"upper_bound" : "4.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/kishikawakatsumi/KeychainAccess.git"
},
{
"identity" : "yycache",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.5",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/EFPrefix/YYCache.git"
}
],
"manifest_display_name" : "EFStorage",
"name" : "EFStorage",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "EFStorage",
"targets" : [
"EFStorageCore",
"EFStorageKeychainAccess",
"EFStorageUserDefaults",
"EFStorageYYCache"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "EFStorageCore",
"targets" : [
"EFStorageCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "EFStorageKeychainAccess",
"targets" : [
"EFStorageKeychainAccess"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "EFStorageUserDefaults",
"targets" : [
"EFStorageUserDefaults"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "EFStorageYYCache",
"targets" : [
"EFStorageYYCache"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "EFStorageYYCache",
"module_type" : "SwiftTarget",
"name" : "EFStorageYYCache",
"path" : "Sources/EFStorageYYCache",
"product_dependencies" : [
"YYCache"
],
"product_memberships" : [
"EFStorage",
"EFStorageYYCache"
],
"sources" : [
"EFStorage+YYCache.swift",
"YYCache+Codable.swift",
"YYCache+NSCoding.swift"
],
"target_dependencies" : [
"EFStorageCore"
],
"type" : "library"
},
{
"c99name" : "EFStorageUserDefaults",
"module_type" : "SwiftTarget",
"name" : "EFStorageUserDefaults",
"path" : "Sources/EFStorageUserDefaults",
"product_memberships" : [
"EFStorage",
"EFStorageUserDefaults"
],
"sources" : [
"EFStorage+UserDefaults.swift",
"UserDefaults+Codable.swift",
"UserDefaults+NSCoding.swift",
"UserDefaults+Primitives.swift",
"UserDefaults+RawRepresentable.swift"
],
"target_dependencies" : [
"EFStorageCore"
],
"type" : "library"
},
{
"c99name" : "EFStorageTests",
"module_type" : "SwiftTarget",
"name" : "EFStorageTests",
"path" : "Tests/EFStorageTests",
"sources" : [
"EFStorageTests.swift",
"XCTestManifests.swift"
],
"target_dependencies" : [
"EFStorageCore",
"EFStorageKeychainAccess",
"EFStorageUserDefaults"
],
"type" : "test"
},
{
"c99name" : "EFStorageKeychainAccess",
"module_type" : "SwiftTarget",
"name" : "EFStorageKeychainAccess",
"path" : "Sources/EFStorageKeychainAccess",
"product_dependencies" : [
"KeychainAccess"
],
"product_memberships" : [
"EFStorage",
"EFStorageKeychainAccess"
],
"sources" : [
"EFStorage+KeychainAccess.swift",
"KeychainAccess+Codable.swift",
"KeychainAccess+NSCoding.swift",
"KeychainAccess+Primitives.swift",
"KeychainAccess+RawRepresentable.swift"
],
"target_dependencies" : [
"EFStorageCore"
],
"type" : "library"
},
{
"c99name" : "EFStorageCore",
"module_type" : "SwiftTarget",
"name" : "EFStorageCore",
"path" : "Sources/EFStorageCore",
"product_memberships" : [
"EFStorage",
"EFStorageCore",
"EFStorageKeychainAccess",
"EFStorageUserDefaults",
"EFStorageYYCache"
],
"sources" : [
"EFContentWrapper.swift",
"EFOptionalContentWrapper.swift",
"EFSingleInstanceStorageReference.swift",
"EFSingleInstanceStorageReferenceWrapper.swift",
"EFStorage.swift",
"EFStorageInternal.swift",
"EFUnderlyingStorage.swift"
],
"type" : "library"
}
],
"tools_version" : "5.1"
}
Done.