diff --git a/Package.swift b/Package.swift index 447a73c80..f66898886 100644 --- a/Package.swift +++ b/Package.swift @@ -4,7 +4,7 @@ import PackageDescription let package = Package( name: "PhoneNumberKit", platforms: [ - .iOS(.v11), .macOS(.v10_13), .tvOS(.v11), .watchOS(.v4) + .iOS(.v12), .macOS(.v10_13), .tvOS(.v12), .watchOS(.v4) ], products: [ .library(name: "PhoneNumberKit", targets: ["PhoneNumberKit"]), diff --git a/PhoneNumberKit.podspec b/PhoneNumberKit.podspec index d7b73f761..e2ea2e1c3 100644 --- a/PhoneNumberKit.podspec +++ b/PhoneNumberKit.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'PhoneNumberKit' - s.version = '3.6.8' + s.version = '3.7.0' s.summary = 'Swift framework for working with phone numbers' s.description = <<-DESC A Swift framework for parsing, formatting and validating international phone numbers. Inspired by Google's libphonenumber. @@ -12,18 +12,18 @@ Pod::Spec.new do |s| s.source = { git: 'https://github.com/marmelroy/PhoneNumberKit.git', tag: s.version.to_s } s.requires_arc = true - s.ios.deployment_target = '11.0' + s.ios.deployment_target = '12.0' s.osx.deployment_target = '10.13' - s.tvos.deployment_target = '11.0' + s.tvos.deployment_target = '12.0' s.watchos.deployment_target = '4.0' s.pod_target_xcconfig = { 'SWIFT_VERSION' => '5.0' } s.swift_version = '5.0' s.subspec 'PhoneNumberKitCore' do |core| - core.ios.deployment_target = '11.0' + core.ios.deployment_target = '12.0' core.osx.deployment_target = '10.13' - core.tvos.deployment_target = '11.0' + core.tvos.deployment_target = '12.0' core.watchos.deployment_target = '4.0' core.source_files = 'PhoneNumberKit/*.{swift}' core.resources = 'PhoneNumberKit/Resources/PhoneNumberMetadata.json' @@ -31,7 +31,7 @@ Pod::Spec.new do |s| s.subspec 'UIKit' do |ui| ui.dependency 'PhoneNumberKit/PhoneNumberKitCore' - ui.ios.deployment_target = '11.0' + ui.ios.deployment_target = '12.0' ui.source_files = 'PhoneNumberKit/UI/*.{swift}' end end diff --git a/PhoneNumberKit.xcodeproj/project.pbxproj b/PhoneNumberKit.xcodeproj/project.pbxproj index 455ebde1a..3d756d772 100644 --- a/PhoneNumberKit.xcodeproj/project.pbxproj +++ b/PhoneNumberKit.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 48; + objectVersion = 53; objects = { /* Begin PBXBuildFile section */ @@ -408,8 +408,9 @@ 3424185B1BB6E5A000EE70E7 /* Project object */ = { isa = PBXProject; attributes = { + BuildIndependentTargetsInParallel = YES; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 1320; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = "Roy Marmelstein"; TargetAttributes = { 342418631BB6E5A000EE70E7 = { @@ -671,7 +672,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MACOSX_DEPLOYMENT_TARGET = 10.13; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; @@ -679,7 +680,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; WATCHOS_DEPLOYMENT_TARGET = 4.0; @@ -731,14 +732,15 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MACOSX_DEPLOYMENT_TARGET = 10.13; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TVOS_DEPLOYMENT_TARGET = 11.0; + TVOS_DEPLOYMENT_TARGET = 12.0; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -751,14 +753,22 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + CODE_SIGN_IDENTITY = ""; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 27; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; INFOPLIST_FILE = PhoneNumberKit/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11"; PRODUCT_BUNDLE_IDENTIFIER = com.roymarmelstein.PhoneNumberKit; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -772,19 +782,28 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + CODE_SIGN_IDENTITY = ""; "DEBUG_INFORMATION_FORMAT[sdk=macosx*]" = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 27; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; INFOPLIST_FILE = PhoneNumberKit/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11"; PRODUCT_BUNDLE_IDENTIFIER = com.roymarmelstein.PhoneNumberKit; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; VALID_ARCHS = "armv7 armv7s arm64 arm64e x86_64"; }; name = Release; @@ -793,7 +812,12 @@ isa = XCBuildConfiguration; buildSettings = { INFOPLIST_FILE = PhoneNumberKitTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; PRODUCT_BUNDLE_IDENTIFIER = com.roymarmelstein.PhoneNumberKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -803,10 +827,16 @@ isa = XCBuildConfiguration; buildSettings = { INFOPLIST_FILE = PhoneNumberKitTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; PRODUCT_BUNDLE_IDENTIFIER = com.roymarmelstein.PhoneNumberKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; }; name = Release; }; @@ -817,14 +847,23 @@ CODE_SIGN_IDENTITY = ""; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 27; + DEAD_CODE_STRIPPING = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 27; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; FRAMEWORK_VERSION = A; INFOPLIST_FILE = "$(SRCROOT)/PhoneNumberKit/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11"; PRODUCT_BUNDLE_IDENTIFIER = com.roymarmelstein.PhoneNumberKit.PhoneNumberKit; PRODUCT_NAME = PhoneNumberKit; SDKROOT = macosx; @@ -839,14 +878,23 @@ CODE_SIGN_IDENTITY = ""; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 27; + DEAD_CODE_STRIPPING = YES; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 27; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; FRAMEWORK_VERSION = A; INFOPLIST_FILE = "$(SRCROOT)/PhoneNumberKit/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11"; PRODUCT_BUNDLE_IDENTIFIER = com.roymarmelstein.PhoneNumberKit.PhoneNumberKit; PRODUCT_NAME = PhoneNumberKit; SDKROOT = macosx; @@ -859,15 +907,23 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ANALYZER_NONNULL = YES; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 27; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 27; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; INFOPLIST_FILE = PhoneNumberKit/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11"; PRODUCT_BUNDLE_IDENTIFIER = com.roymarmelstein.PhoneNumberKit.PhoneNumberKit; PRODUCT_NAME = PhoneNumberKit; SDKROOT = watchos; @@ -881,15 +937,23 @@ buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ANALYZER_NONNULL = YES; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 27; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 27; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; INFOPLIST_FILE = PhoneNumberKit/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11"; PRODUCT_BUNDLE_IDENTIFIER = com.roymarmelstein.PhoneNumberKit.PhoneNumberKit; PRODUCT_NAME = PhoneNumberKit; SDKROOT = watchos; @@ -902,15 +966,23 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ANALYZER_NONNULL = YES; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 27; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 27; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; INFOPLIST_FILE = "$(SRCROOT)/PhoneNumberKit/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11"; PRODUCT_BUNDLE_IDENTIFIER = com.roymarmelstein.PhoneNumberKit.PhoneNumberKit; PRODUCT_NAME = PhoneNumberKit; SDKROOT = appletvos; @@ -923,15 +995,23 @@ isa = XCBuildConfiguration; buildSettings = { CLANG_ANALYZER_NONNULL = YES; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + CODE_SIGN_IDENTITY = ""; CURRENT_PROJECT_VERSION = 27; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 27; DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; INFOPLIST_FILE = "$(SRCROOT)/PhoneNumberKit/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu99 gnu++11"; PRODUCT_BUNDLE_IDENTIFIER = com.roymarmelstein.PhoneNumberKit.PhoneNumberKit; PRODUCT_NAME = PhoneNumberKit; SDKROOT = appletvos; diff --git a/PhoneNumberKit.xcodeproj/xcshareddata/xcschemes/PhoneNumberKit-macOS.xcscheme b/PhoneNumberKit.xcodeproj/xcshareddata/xcschemes/PhoneNumberKit-macOS.xcscheme index 7de0dad62..d5ba9576f 100644 --- a/PhoneNumberKit.xcodeproj/xcshareddata/xcschemes/PhoneNumberKit-macOS.xcscheme +++ b/PhoneNumberKit.xcodeproj/xcshareddata/xcschemes/PhoneNumberKit-macOS.xcscheme @@ -1,6 +1,6 @@ String { #if canImport(Contacts) - if #available(iOS 9, macOS 10.11, macCatalyst 13.1, watchOS 2.0, *) { + if #available(iOS 12.0, macOS 10.13, macCatalyst 13.1, watchOS 4.0, *) { // macCatalyst OS bug if language is set to Korean - //CNContactsUserDefaults.shared().countryCode will return ko instead of kr + // CNContactsUserDefaults.shared().countryCode will return ko instead of kr // Failed parsing any phone number. let countryCode = CNContactsUserDefaults.shared().countryCode.uppercased() #if targetEnvironment(macCatalyst) @@ -308,7 +308,6 @@ public final class PhoneNumberKit { } #endif return countryCode - } #endif diff --git a/PhoneNumberKit/UI/CountryCodePickerViewController.swift b/PhoneNumberKit/UI/CountryCodePickerViewController.swift index 9f357ea26..501c8dca8 100644 --- a/PhoneNumberKit/UI/CountryCodePickerViewController.swift +++ b/PhoneNumberKit/UI/CountryCodePickerViewController.swift @@ -2,12 +2,10 @@ import UIKit -@available(iOS 11.0, *) public protocol CountryCodePickerDelegate: AnyObject { func countryCodePickerViewControllerDidPickCountry(_ country: CountryCodePickerViewController.Country) } -@available(iOS 11.0, *) public class CountryCodePickerViewController: UITableViewController { lazy var searchController: UISearchController = { @@ -232,7 +230,6 @@ public class CountryCodePickerViewController: UITableViewController { } } -@available(iOS 11.0, *) extension CountryCodePickerViewController: UISearchResultsUpdating { var isFiltering: Bool { @@ -257,7 +254,6 @@ extension CountryCodePickerViewController: UISearchResultsUpdating { // MARK: Types -@available(iOS 11.0, *) public extension CountryCodePickerViewController { struct Country { diff --git a/PhoneNumberKit/UI/PhoneNumberTextField.swift b/PhoneNumberKit/UI/PhoneNumberTextField.swift index 47c2f1bd3..3ff983909 100644 --- a/PhoneNumberKit/UI/PhoneNumberTextField.swift +++ b/PhoneNumberKit/UI/PhoneNumberTextField.swift @@ -121,13 +121,12 @@ open class PhoneNumberTextField: UITextField, UITextFieldDelegate { private var _withDefaultPickerUI: Bool = false { didSet { - if #available(iOS 11.0, *), flagButton.actions(forTarget: self, forControlEvent: .touchUpInside) == nil { + if flagButton.actions(forTarget: self, forControlEvent: .touchUpInside) == nil { flagButton.addTarget(self, action: #selector(didPressFlagButton), for: .touchUpInside) } } } - @available(iOS 11.0, *) public var withDefaultPickerUI: Bool { get { _withDefaultPickerUI } set { _withDefaultPickerUI = newValue } @@ -366,7 +365,6 @@ open class PhoneNumberTextField: UITextField, UITextFieldDelegate { self.attributedPlaceholder = ph } - @available(iOS 11.0, *) @objc func didPressFlagButton() { guard withDefaultPickerUI else { return } let vc = CountryCodePickerViewController(phoneNumberKit: phoneNumberKit, @@ -530,7 +528,6 @@ open class PhoneNumberTextField: UITextField, UITextFieldDelegate { self._delegate?.textFieldDidEndEditing?(textField) } - @available (iOS 10.0, tvOS 10.0, *) open func textFieldDidEndEditing(_ textField: UITextField, reason: UITextField.DidEndEditingReason) { updateTextFieldDidEndEditing(textField) if let _delegate = _delegate { @@ -567,7 +564,6 @@ open class PhoneNumberTextField: UITextField, UITextFieldDelegate { } } -@available(iOS 11.0, *) extension PhoneNumberTextField: CountryCodePickerDelegate { public func countryCodePickerViewControllerDidPickCountry(_ country: CountryCodePickerViewController.Country) { diff --git a/PhoneNumberKitTests/PhoneNumber+CodableTests.swift b/PhoneNumberKitTests/PhoneNumber+CodableTests.swift index a7a351aaa..8e94d1d3a 100644 --- a/PhoneNumberKitTests/PhoneNumber+CodableTests.swift +++ b/PhoneNumberKitTests/PhoneNumber+CodableTests.swift @@ -230,7 +230,7 @@ private extension PhoneNumberCodableTests { line: UInt = #line ) throws { let decoder = JSONDecoder() - if let strategy = strategy { + if let strategy { decoder.phoneNumberDecodingStrategy = strategy } let data = try XCTUnwrap(json.data(using: .utf8)) @@ -246,26 +246,12 @@ private extension PhoneNumberCodableTests { line: UInt = #line ) throws { let encoder = JSONEncoder() - if let strategy = strategy { + if let strategy { encoder.phoneNumberEncodingStrategy = strategy } - if #available(iOS 11.0, *) { - encoder.outputFormatting = [.prettyPrinted, .sortedKeys] - let data = try encoder.encode(phoneNumber) - let json = String(decoding: data, as: UTF8.self) - XCTAssertEqual(json, expectedJSON, file: file, line: line) - } else { - let data = try encoder.encode(phoneNumber) - let jsonObject = try JSONSerialization.jsonObject(with: data, options: [.allowFragments]) - switch jsonObject { - case let json as String: - XCTAssertEqual("\"" + json + "\"", expectedJSON, file: file, line: line) - case let json as [String: AnyHashable]: - let expectedJSON = try JSONSerialization.jsonObject(with: Data(expectedJSON.utf8)) as? [String: AnyHashable] - XCTAssertEqual(json, expectedJSON, file: file, line: line) - default: - XCTFail("JSON parsing failed", file: file, line: line) - } - } + encoder.outputFormatting = [.prettyPrinted, .sortedKeys] + let data = try encoder.encode(phoneNumber) + let json = String(decoding: data, as: UTF8.self) + XCTAssertEqual(json, expectedJSON, file: file, line: line) } } diff --git a/README.md b/README.md index 183451844..cbc480ba0 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ You can also query countries for a dialing code or the dialing code for a given ```swift phoneNumberKit.countries(withCode: 33) phoneNumberKit.countryCode(for: "FR") +``` ## Customize Country Picker