From 440b0123f2a75d4276143c3dc23053994d49fa6e Mon Sep 17 00:00:00 2001 From: Mingshen Sun Date: Mon, 23 May 2022 10:54:11 -0700 Subject: [PATCH] Fix building issues with XCode --- pass.xcodeproj/project.pbxproj | 4 +- .../PasswordDetailTableViewController.swift | 1 + pass/Helpers/Objective-CBridgingHeader.h | 1 - passKit/Helpers/DefaultsKeys.swift | 68 ++----------------- passKit/Helpers/SearchBarScope.swift | 2 - scripts/swiftformat.sh | 1 + scripts/swiftlint.sh | 4 +- 7 files changed, 13 insertions(+), 68 deletions(-) diff --git a/pass.xcodeproj/project.pbxproj b/pass.xcodeproj/project.pbxproj index e07195c..d090c39 100644 --- a/pass.xcodeproj/project.pbxproj +++ b/pass.xcodeproj/project.pbxproj @@ -150,7 +150,6 @@ 9A996C5726DDF65900A4485D /* Base32 in Frameworks */ = {isa = PBXBuildFile; productRef = 9A996C5626DDF65900A4485D /* Base32 */; }; 9A996C5826DEB0D100A4485D /* passKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A26075781EEC6F34005DB03E /* passKit.framework */; }; 9A996C5926DEB0D200A4485D /* passKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = A26075781EEC6F34005DB03E /* passKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9A996C5E26DEB79E00A4485D /* passKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A26075781EEC6F34005DB03E /* passKit.framework */; }; 9A996C6426DEB93F00A4485D /* passAutoFillExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = A239F5952158C08B00576CBF /* passAutoFillExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 9A996C6826DEB96B00A4485D /* passShortcuts.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 30A69945240EED5E00B7D967 /* passShortcuts.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 9A996C6B26DEB97600A4485D /* passExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = A26700241EEC466A00176B8A /* passExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; @@ -192,6 +191,7 @@ DC037CBC1E4DD47B00609409 /* TextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = DC037CBA1E4DD47B00609409 /* TextFieldTableViewCell.xib */; }; DC037CBF1E4ED4E100609409 /* TextViewTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC037CBD1E4ED4E100609409 /* TextViewTableViewCell.swift */; }; DC037CC01E4ED4E100609409 /* TextViewTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = DC037CBE1E4ED4E100609409 /* TextViewTableViewCell.xib */; }; + DC0F7692283C00220042DA74 /* passKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A26075781EEC6F34005DB03E /* passKit.framework */; }; DC193FFA1E49B4430077E0A3 /* AdvancedSettingsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC193FF91E49B4430077E0A3 /* AdvancedSettingsTableViewController.swift */; }; DC3E64E61E656F11009A83DE /* CommitLogsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC3E64E51E656F11009A83DE /* CommitLogsTableViewController.swift */; }; DC4914961E434301007FF592 /* LabelTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC4914941E434301007FF592 /* LabelTableViewCell.swift */; }; @@ -514,7 +514,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9A996C5E26DEB79E00A4485D /* passKit.framework in Frameworks */, + DC0F7692283C00220042DA74 /* passKit.framework in Frameworks */, 30A3001826DA6974002A734E /* SwiftyUserDefaults in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/pass/Controllers/PasswordDetailTableViewController.swift b/pass/Controllers/PasswordDetailTableViewController.swift index e39b5c6..3e7ad0f 100644 --- a/pass/Controllers/PasswordDetailTableViewController.swift +++ b/pass/Controllers/PasswordDetailTableViewController.swift @@ -12,6 +12,7 @@ import passAutoFillExtension import passKit import SVProgressHUD import UIKit +import YubiKit class PasswordDetailTableViewController: UITableViewController, UIGestureRecognizerDelegate, AlertPresenting { var passwordEntity: PasswordEntity? diff --git a/pass/Helpers/Objective-CBridgingHeader.h b/pass/Helpers/Objective-CBridgingHeader.h index 5a7c3e4..ff807e5 100644 --- a/pass/Helpers/Objective-CBridgingHeader.h +++ b/pass/Helpers/Objective-CBridgingHeader.h @@ -10,6 +10,5 @@ #define Objective_CBridgingHeader_h @import ObjectiveGit; -#import "YubiKit.h" #endif /* Objective_CBridgingHeader_h */ diff --git a/passKit/Helpers/DefaultsKeys.swift b/passKit/Helpers/DefaultsKeys.swift index 3059422..1f31d3d 100644 --- a/passKit/Helpers/DefaultsKeys.swift +++ b/passKit/Helpers/DefaultsKeys.swift @@ -11,72 +11,16 @@ import SwiftyUserDefaults // Workaround for Xcode 13: https://github.com/sunshinejr/SwiftyUserDefaults/issues/285 -extension DefaultsSerializable { - public static var _defaultsArray: DefaultsArrayBridge<[T]> { return DefaultsArrayBridge() } -} -extension Date: DefaultsSerializable { - public static var _defaults: DefaultsObjectBridge { return DefaultsObjectBridge() } -} -extension String: DefaultsSerializable { - public static var _defaults: DefaultsStringBridge { return DefaultsStringBridge() } -} -extension Int: DefaultsSerializable { - public static var _defaults: DefaultsIntBridge { return DefaultsIntBridge() } -} -extension Double: DefaultsSerializable { - public static var _defaults: DefaultsDoubleBridge { return DefaultsDoubleBridge() } -} -extension Bool: DefaultsSerializable { - public static var _defaults: DefaultsBoolBridge { return DefaultsBoolBridge() } -} -extension Data: DefaultsSerializable { - public static var _defaults: DefaultsDataBridge { return DefaultsDataBridge() } +public extension DefaultsSerializable where Self: Codable { + typealias Bridge = DefaultsCodableBridge + typealias ArrayBridge = DefaultsCodableBridge<[Self]> } -extension URL: DefaultsSerializable { - #if os(Linux) - public static var _defaults: DefaultsKeyedArchiverBridge { return DefaultsKeyedArchiverBridge() } - #else - public static var _defaults: DefaultsUrlBridge { return DefaultsUrlBridge() } - #endif - public static var _defaultsArray: DefaultsKeyedArchiverBridge<[URL]> { return DefaultsKeyedArchiverBridge() } +public extension DefaultsSerializable where Self: RawRepresentable { + typealias Bridge = DefaultsRawRepresentableBridge + typealias ArrayBridge = DefaultsRawRepresentableArrayBridge<[Self]> } -extension DefaultsSerializable where Self: Codable { - public static var _defaults: DefaultsCodableBridge { return DefaultsCodableBridge() } - public static var _defaultsArray: DefaultsCodableBridge<[Self]> { return DefaultsCodableBridge() } -} - -extension DefaultsSerializable where Self: RawRepresentable { - public static var _defaults: DefaultsRawRepresentableBridge { return DefaultsRawRepresentableBridge() } - public static var _defaultsArray: DefaultsRawRepresentableArrayBridge<[Self]> { return DefaultsRawRepresentableArrayBridge() } -} - -extension DefaultsSerializable where Self: NSCoding { - public static var _defaults: DefaultsKeyedArchiverBridge { return DefaultsKeyedArchiverBridge() } - public static var _defaultsArray: DefaultsKeyedArchiverBridge<[Self]> { return DefaultsKeyedArchiverBridge() } -} - -extension Dictionary: DefaultsSerializable where Key == String { - public typealias T = [Key: Value] - public typealias Bridge = DefaultsObjectBridge - public typealias ArrayBridge = DefaultsArrayBridge<[T]> - public static var _defaults: Bridge { return Bridge() } - public static var _defaultsArray: ArrayBridge { return ArrayBridge() } -} -extension Array: DefaultsSerializable where Element: DefaultsSerializable { - public typealias T = [Element.T] - public typealias Bridge = Element.ArrayBridge - public typealias ArrayBridge = DefaultsObjectBridge<[T]> - public static var _defaults: Bridge { - return Element._defaultsArray - } - public static var _defaultsArray: ArrayBridge { - fatalError("Multidimensional arrays are not supported yet") - } -} - - public var Defaults = DefaultsAdapter(defaults: UserDefaults(suiteName: Globals.groupIdentifier)!, keyStore: DefaultsKeys()) public enum KeySource: String, DefaultsSerializable { diff --git a/passKit/Helpers/SearchBarScope.swift b/passKit/Helpers/SearchBarScope.swift index b679f0f..180e866 100644 --- a/passKit/Helpers/SearchBarScope.swift +++ b/passKit/Helpers/SearchBarScope.swift @@ -6,8 +6,6 @@ // Copyright © 2019 Bob Sun. All rights reserved. // -import SwiftyUserDefaults - public enum SearchBarScope: Int { case current case all diff --git a/scripts/swiftformat.sh b/scripts/swiftformat.sh index 8c82e26..065354a 100755 --- a/scripts/swiftformat.sh +++ b/scripts/swiftformat.sh @@ -1,3 +1,4 @@ +export PATH="/opt/homebrew/bin:/opt/homebrew/sbin${PATH+:$PATH}" SWIFTFORMAT_VERSION="0.49.*" if [[ "${CI}" == "true" ]]; then diff --git a/scripts/swiftlint.sh b/scripts/swiftlint.sh index 716aac5..4ef7412 100755 --- a/scripts/swiftlint.sh +++ b/scripts/swiftlint.sh @@ -1,4 +1,6 @@ -SWIFTLINT_VERSION="0.46.*" +export PATH="/opt/homebrew/bin:/opt/homebrew/sbin${PATH+:$PATH}" + +SWIFTLINT_VERSION="0.47.*" if [[ "${CI}" == "true" ]]; then echo "Running in a Continuous Integration environment. Linting is skipped."