Require macOS 10.13, iOS 12, tvOS 12, watchOS 5

Fixes #81
This commit is contained in:
Sindre Sorhus 2021-10-12 13:45:07 +07:00
parent 5f16cefebe
commit 8a6e4a96fd
4 changed files with 11 additions and 24 deletions

View File

@ -1,13 +1,13 @@
// swift-tools-version:5.4
// swift-tools-version:5.5
import PackageDescription
let package = Package(
name: "Defaults",
platforms: [
.macOS(.v10_12),
.iOS(.v10),
.tvOS(.v10),
.watchOS(.v3)
.macOS(.v10_13),
.iOS(.v12),
.tvOS(.v12),
.watchOS(.v5)
],
products: [
.library(

View File

@ -88,16 +88,7 @@ extension Defaults {
return nil
}
// Version below macOS 10.13 and iOS 11.0 does not support `archivedData(withRootObject:requiringSecureCoding:)`.
// We need to set `requiresSecureCoding` ourselves.
if #available(iOS 11.0, macOS 10.13, tvOS 11.0, watchOS 4.0, iOSApplicationExtension 11.0, macOSApplicationExtension 10.13, tvOSApplicationExtension 11.0, watchOSApplicationExtension 4.0, *) {
return try? NSKeyedArchiver.archivedData(withRootObject: object, requiringSecureCoding: true)
} else {
let keyedArchiver = NSKeyedArchiver()
keyedArchiver.requiresSecureCoding = true
keyedArchiver.encode(object, forKey: NSKeyedArchiveRootObjectKey)
return keyedArchiver.encodedData
}
}
public func deserialize(_ object: Serializable?) -> Value? {

View File

@ -3,7 +3,6 @@ import CoreData
import Defaults
import XCTest
@available(iOS 11.0, macOS 10.13, tvOS 11.0, watchOS 4.0, iOSApplicationExtension 11.0, macOSApplicationExtension 10.13, tvOSApplicationExtension 11.0, watchOSApplicationExtension 4.0, *)
private final class ExamplePersistentHistory: NSPersistentHistoryToken, Defaults.Serializable {
let value: String
@ -25,16 +24,14 @@ private final class ExamplePersistentHistory: NSPersistentHistoryToken, Defaults
}
// NSSecureCoding
@available(iOS 11.0, macOS 10.13, tvOS 11.0, watchOS 4.0, iOSApplicationExtension 11.0, macOSApplicationExtension 10.13, tvOSApplicationExtension 11.0, watchOSApplicationExtension 4.0, *) private let persistentHistoryValue = ExamplePersistentHistory(value: "ExampleToken")
private let persistentHistoryValue = ExamplePersistentHistory(value: "ExampleToken")
@available(iOS 11.0, macOS 10.13, tvOS 11.0, watchOS 4.0, iOSApplicationExtension 11.0, macOSApplicationExtension 10.13, tvOSApplicationExtension 11.0, watchOSApplicationExtension 4.0, *)
extension Defaults.Keys {
fileprivate static let persistentHistory = Key<ExamplePersistentHistory>("persistentHistory", default: persistentHistoryValue)
fileprivate static let persistentHistoryArray = Key<[ExamplePersistentHistory]>("array_persistentHistory", default: [persistentHistoryValue])
fileprivate static let persistentHistoryDictionary = Key<[String: ExamplePersistentHistory]>("dictionary_persistentHistory", default: ["0": persistentHistoryValue])
}
@available(iOS 11.0, macOS 10.13, tvOS 11.0, watchOS 4.0, iOSApplicationExtension 11.0, macOSApplicationExtension 10.13, tvOSApplicationExtension 11.0, watchOSApplicationExtension 4.0, *)
final class DefaultsNSSecureCodingTests: XCTestCase {
override func setUp() {
super.setUp()
@ -313,7 +310,6 @@ final class DefaultsNSSecureCodingTests: XCTestCase {
waitForExpectations(timeout: 10)
}
@available(iOS 11.0, macOS 10.13, tvOS 11.0, watchOS 4.0, iOSApplicationExtension 11.0, macOSApplicationExtension 10.13, tvOSApplicationExtension 11.0, watchOSApplicationExtension 4.0, *)
func testObserveMultipleNSSecureKeys() {
let key1 = Defaults.Key<ExamplePersistentHistory>("observeNSSecureCodingKey1", default: ExamplePersistentHistory(value: "TestValue"))
let key2 = Defaults.Key<ExamplePersistentHistory>("observeNSSecureCodingKey2", default: ExamplePersistentHistory(value: "TestValue"))

View File

@ -23,10 +23,10 @@ For a real-world example, see the [Plash app](https://github.com/sindresorhus/Pl
## Compatibility
- macOS 10.12+
- iOS 10+
- tvOS 10+
- watchOS 3+
- macOS 10.13+
- iOS 12+
- tvOS 12+
- watchOS 5+
<br>