From 70a0bb73be70211c5f8a8f641ba3f1b02e6235e2 Mon Sep 17 00:00:00 2001 From: Mattia Righetti Date: Sat, 4 Nov 2023 22:40:48 +0100 Subject: [PATCH] chore: remove ui tests and add xcode stuff --- .gitignore | 1 + HNReader.xcodeproj/project.pbxproj | 166 +++--------------- .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcschemes/xcschememanagement.plist | 5 - .../UserInterfaceState.xcuserstate | Bin 0 -> 45376 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 6 - .../xcschemes/DateTests.xcscheme | 68 ------- .../xcschemes/HNReader.xcscheme | 68 ------- .../xcschemes/HackerNewsClientTests.xcscheme | 68 ------- .../xcschemes/HackerNewsTests.xcscheme | 68 ------- ...sts.testItemDateIntervalFormatter.xcscheme | 68 ------- .../xcschemes/ItemTests.xcscheme | 68 ------- .../xcschemes/xcschememanagement.plist | 70 -------- .../HNReader.xcdatamodeld/.xccurrentversion | 5 +- HNReaderUITests/HNReaderUITests.swift | 42 ----- HNReaderUITests/Info.plist | 22 --- 16 files changed, 22 insertions(+), 711 deletions(-) delete mode 100644 HNReader.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 HNReader.xcodeproj/project.xcworkspace/xcuserdata/matt.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 HNReader.xcodeproj/project.xcworkspace/xcuserdata/mattrighetti.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist delete mode 100644 HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/DateTests.xcscheme delete mode 100644 HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HNReader.xcscheme delete mode 100644 HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HackerNewsClientTests.xcscheme delete mode 100644 HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HackerNewsTests.xcscheme delete mode 100644 HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/ItemTests.testItemDateIntervalFormatter.xcscheme delete mode 100644 HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/ItemTests.xcscheme delete mode 100644 HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/xcschememanagement.plist delete mode 100644 HNReaderUITests/HNReaderUITests.swift delete mode 100644 HNReaderUITests/Info.plist diff --git a/.gitignore b/.gitignore index 485dee6..556d3ef 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .idea +GoogleService-Info.plist diff --git a/HNReader.xcodeproj/project.pbxproj b/HNReader.xcodeproj/project.pbxproj index c9c2102..3d6f2d3 100644 --- a/HNReader.xcodeproj/project.pbxproj +++ b/HNReader.xcodeproj/project.pbxproj @@ -23,8 +23,6 @@ C9D0937B26741BBF002CC786 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C9D0937A26741BBF002CC786 /* Assets.xcassets */; }; C9D0937E26741BBF002CC786 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C9D0937D26741BBF002CC786 /* Preview Assets.xcassets */; }; C9D0938026741BBF002CC786 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D0937F26741BBF002CC786 /* Persistence.swift */; }; - C9D0938326741BBF002CC786 /* HNReader.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = C9D0938126741BBF002CC786 /* HNReader.xcdatamodeld */; }; - C9D0939A26741BC0002CC786 /* HNReaderUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D0939926741BC0002CC786 /* HNReaderUITests.swift */; }; C9D093AC26741C25002CC786 /* Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D093AB26741C25002CC786 /* Item.swift */; }; C9E9BCFD2674C80E001B4E19 /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9E9BCFC2674C80E001B4E19 /* AppState.swift */; }; C9E9BCFF2674CB6C001B4E19 /* HackerNewsClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9E9BCFE2674CB6C001B4E19 /* HackerNewsClient.swift */; }; @@ -40,13 +38,6 @@ remoteGlobalIDString = C9D0937226741BBE002CC786; remoteInfo = HNReader; }; - C9D0939626741BC0002CC786 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C9D0936B26741BBE002CC786 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C9D0937226741BBE002CC786; - remoteInfo = HNReader; - }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ @@ -67,14 +58,10 @@ C9D0937A26741BBF002CC786 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; C9D0937D26741BBF002CC786 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; C9D0937F26741BBF002CC786 /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = ""; }; - C9D0938226741BBF002CC786 /* HNReader.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = HNReader.xcdatamodel; sourceTree = ""; }; C9D0938426741BBF002CC786 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C9D0938526741BBF002CC786 /* HNReader.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = HNReader.entitlements; sourceTree = ""; }; C9D0938A26741BC0002CC786 /* HNReaderTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HNReaderTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C9D0939026741BC0002CC786 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C9D0939526741BC0002CC786 /* HNReaderUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HNReaderUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - C9D0939926741BC0002CC786 /* HNReaderUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HNReaderUITests.swift; sourceTree = ""; }; - C9D0939B26741BC0002CC786 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C9D093AB26741C25002CC786 /* Item.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Item.swift; sourceTree = ""; }; C9E9BCFC2674C80E001B4E19 /* AppState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppState.swift; sourceTree = ""; }; C9E9BCFE2674CB6C001B4E19 /* HackerNewsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HackerNewsClient.swift; sourceTree = ""; }; @@ -97,13 +84,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C9D0939226741BC0002CC786 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -153,7 +133,6 @@ children = ( C9D0937526741BBE002CC786 /* HNReader */, C9D0938D26741BC0002CC786 /* HNReaderTests */, - C9D0939826741BC0002CC786 /* HNReaderUITests */, C9D0937426741BBE002CC786 /* Products */, ); sourceTree = ""; @@ -163,7 +142,6 @@ children = ( C9D0937326741BBE002CC786 /* HNReader.app */, C9D0938A26741BC0002CC786 /* HNReaderTests.xctest */, - C9D0939526741BC0002CC786 /* HNReaderUITests.xctest */, ); name = Products; sourceTree = ""; @@ -180,7 +158,6 @@ C9D0937F26741BBF002CC786 /* Persistence.swift */, C9D0938426741BBF002CC786 /* Info.plist */, C9D0938526741BBF002CC786 /* HNReader.entitlements */, - C9D0938126741BBF002CC786 /* HNReader.xcdatamodeld */, C9D0937C26741BBF002CC786 /* Preview Content */, 3307153CA4CBEF847DCF967F /* Utils */, ); @@ -206,15 +183,6 @@ path = HNReaderTests; sourceTree = ""; }; - C9D0939826741BC0002CC786 /* HNReaderUITests */ = { - isa = PBXGroup; - children = ( - C9D0939926741BC0002CC786 /* HNReaderUITests.swift */, - C9D0939B26741BC0002CC786 /* Info.plist */, - ); - path = HNReaderUITests; - sourceTree = ""; - }; C9D093A726741BE1002CC786 /* View */ = { isa = PBXGroup; children = ( @@ -295,24 +263,6 @@ productReference = C9D0938A26741BC0002CC786 /* HNReaderTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - C9D0939426741BC0002CC786 /* HNReaderUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = C9D093A426741BC0002CC786 /* Build configuration list for PBXNativeTarget "HNReaderUITests" */; - buildPhases = ( - C9D0939126741BC0002CC786 /* Sources */, - C9D0939226741BC0002CC786 /* Frameworks */, - C9D0939326741BC0002CC786 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - C9D0939726741BC0002CC786 /* PBXTargetDependency */, - ); - name = HNReaderUITests; - productName = HNReaderUITests; - productReference = C9D0939526741BC0002CC786 /* HNReaderUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -329,10 +279,6 @@ CreatedOnToolsVersion = 12.5; TestTargetID = C9D0937226741BBE002CC786; }; - C9D0939426741BC0002CC786 = { - CreatedOnToolsVersion = 12.5; - TestTargetID = C9D0937226741BBE002CC786; - }; }; }; buildConfigurationList = C9D0936E26741BBE002CC786 /* Build configuration list for PBXProject "HNReader" */; @@ -352,7 +298,6 @@ targets = ( C9D0937226741BBE002CC786 /* HNReader */, C9D0938926741BC0002CC786 /* HNReaderTests */, - C9D0939426741BC0002CC786 /* HNReaderUITests */, ); }; /* End PBXProject section */ @@ -374,13 +319,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C9D0939326741BC0002CC786 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -394,7 +332,6 @@ C93F99B6267554F00046F870 /* ItemCell.swift in Sources */, C93F99B8267557FC0046F870 /* ItemList.swift in Sources */, C9E9BCFD2674C80E001B4E19 /* AppState.swift in Sources */, - C9D0938326741BBF002CC786 /* HNReader.xcdatamodeld in Sources */, C9E9BD032674D095001B4E19 /* User.swift in Sources */, C93F99BA267580CE0046F870 /* HTMLText.swift in Sources */, C9E9BCFF2674CB6C001B4E19 /* HackerNewsClient.swift in Sources */, @@ -418,14 +355,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C9D0939126741BC0002CC786 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C9D0939A26741BC0002CC786 /* HNReaderUITests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -434,11 +363,6 @@ target = C9D0937226741BBE002CC786 /* HNReader */; targetProxy = C9D0938B26741BC0002CC786 /* PBXContainerItemProxy */; }; - C9D0939726741BC0002CC786 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = C9D0937226741BBE002CC786 /* HNReader */; - targetProxy = C9D0939626741BC0002CC786 /* PBXContainerItemProxy */; - }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -493,7 +417,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 11.3; + MACOSX_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -548,7 +472,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 11.3; + MACOSX_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = macosx; @@ -562,23 +486,29 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_ENTITLEMENTS = HNReader/HNReader.entitlements; - CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"HNReader/Preview Content\""; DEVELOPMENT_TEAM = H89RFW5UZ6; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; INFOPLIST_FILE = HNReader/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = HNReader; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 11.0; + MACOSX_DEPLOYMENT_TARGET = 14.0; + MARKETING_VERSION = 1.2; PRODUCT_BUNDLE_IDENTIFIER = com.mattrighetti.HNReader; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; name = Debug; @@ -588,23 +518,29 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES; CODE_SIGN_ENTITLEMENTS = HNReader/HNReader.entitlements; - CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"HNReader/Preview Content\""; DEVELOPMENT_TEAM = H89RFW5UZ6; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; INFOPLIST_FILE = HNReader/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = HNReader; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); - MACOSX_DEPLOYMENT_TARGET = 11.0; + MACOSX_DEPLOYMENT_TARGET = 14.0; + MARKETING_VERSION = 1.2; PRODUCT_BUNDLE_IDENTIFIER = com.mattrighetti.HNReader; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; name = Release; @@ -653,46 +589,6 @@ }; name = Release; }; - C9D093A526741BC0002CC786 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = H89RFW5UZ6; - INFOPLIST_FILE = HNReaderUITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.mattrighetti.HNReaderUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_TARGET_NAME = HNReader; - }; - name = Debug; - }; - C9D093A626741BC0002CC786 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = H89RFW5UZ6; - INFOPLIST_FILE = HNReaderUITests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.mattrighetti.HNReaderUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_TARGET_NAME = HNReader; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -723,29 +619,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C9D093A426741BC0002CC786 /* Build configuration list for PBXNativeTarget "HNReaderUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C9D093A526741BC0002CC786 /* Debug */, - C9D093A626741BC0002CC786 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ - -/* Begin XCVersionGroup section */ - C9D0938126741BBF002CC786 /* HNReader.xcdatamodeld */ = { - isa = XCVersionGroup; - children = ( - C9D0938226741BBF002CC786 /* HNReader.xcdatamodel */, - ); - currentVersion = C9D0938226741BBF002CC786 /* HNReader.xcdatamodel */; - path = HNReader.xcdatamodeld; - sourceTree = ""; - versionGroupType = wrapper.xcdatamodel; - }; -/* End XCVersionGroup section */ }; rootObject = C9D0936B26741BBE002CC786 /* Project object */; } diff --git a/HNReader.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/HNReader.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/HNReader.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/HNReader.xcodeproj/project.xcworkspace/xcuserdata/matt.xcuserdatad/xcschemes/xcschememanagement.plist b/HNReader.xcodeproj/project.xcworkspace/xcuserdata/matt.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index ee3458d..0000000 --- a/HNReader.xcodeproj/project.xcworkspace/xcuserdata/matt.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/HNReader.xcodeproj/project.xcworkspace/xcuserdata/mattrighetti.xcuserdatad/UserInterfaceState.xcuserstate b/HNReader.xcodeproj/project.xcworkspace/xcuserdata/mattrighetti.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..e6fcee422632a41e15cd6df74bb5c8d84bf36b18 GIT binary patch literal 45376 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

p{`M{)JED^0;k(-4&S;5AG3WQL(V&8 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 - - diff --git a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/DateTests.xcscheme b/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/DateTests.xcscheme deleted file mode 100644 index 43dc800..0000000 --- a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/DateTests.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HNReader.xcscheme b/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HNReader.xcscheme deleted file mode 100644 index 87c5155..0000000 --- a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HNReader.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HackerNewsClientTests.xcscheme b/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HackerNewsClientTests.xcscheme deleted file mode 100644 index 43dc800..0000000 --- a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HackerNewsClientTests.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HackerNewsTests.xcscheme b/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HackerNewsTests.xcscheme deleted file mode 100644 index 43dc800..0000000 --- a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/HackerNewsTests.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/ItemTests.testItemDateIntervalFormatter.xcscheme b/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/ItemTests.testItemDateIntervalFormatter.xcscheme deleted file mode 100644 index 43dc800..0000000 --- a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/ItemTests.testItemDateIntervalFormatter.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/ItemTests.xcscheme b/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/ItemTests.xcscheme deleted file mode 100644 index 43dc800..0000000 --- a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/ItemTests.xcscheme +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/xcschememanagement.plist b/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 9f2c11f..0000000 --- a/HNReader.xcodeproj/xcuserdata/matt.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,70 +0,0 @@ - - - - - SchemeUserState - - HNReader.xcscheme - - orderHint - 0 - - Promises (Playground) 1.xcscheme - - isShown - - orderHint - 2 - - Promises (Playground) 2.xcscheme - - isShown - - orderHint - 3 - - Promises (Playground).xcscheme - - isShown - - orderHint - 1 - - HackerNewsClientTests.xcscheme - - isShown - - orderHint - 4 - - ItemTests.testItemDateIntervalFormatter.xcscheme - - isShown - - orderHint - 5 - - HackerNewsTests.xcscheme - - isShown - - orderHint - 6 - - ItemTests.xcscheme - - isShown - - orderHint - 7 - - DateTests.xcscheme - - isShown - - orderHint - 8 - - - - diff --git a/HNReader/HNReader.xcdatamodeld/.xccurrentversion b/HNReader/HNReader.xcdatamodeld/.xccurrentversion index 45b9600..0c67376 100644 --- a/HNReader/HNReader.xcdatamodeld/.xccurrentversion +++ b/HNReader/HNReader.xcdatamodeld/.xccurrentversion @@ -1,8 +1,5 @@ - - _XCCurrentVersionName - HNReader.xcdatamodel - + diff --git a/HNReaderUITests/HNReaderUITests.swift b/HNReaderUITests/HNReaderUITests.swift deleted file mode 100644 index 75d4961..0000000 --- a/HNReaderUITests/HNReaderUITests.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// HNReaderUITests.swift -// HNReaderUITests -// -// Created by Mattia Righetti on 12/06/21. -// - -import XCTest - -class HNReaderUITests: XCTestCase { - - override func setUpWithError() throws { - // Put setup code here. This method is called before the invocation of each test method in the class. - - // In UI tests it is usually best to stop immediately when a failure occurs. - continueAfterFailure = false - - // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testExample() throws { - // UI tests must launch the application that they test. - let app = XCUIApplication() - app.launch() - - // Use recording to get started writing UI tests. - // Use XCTAssert and related functions to verify your tests produce the correct results. - } - - func testLaunchPerformance() throws { - if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { - // This measures how long it takes to launch your application. - measure(metrics: [XCTApplicationLaunchMetric()]) { - XCUIApplication().launch() - } - } - } -} diff --git a/HNReaderUITests/Info.plist b/HNReaderUITests/Info.plist deleted file mode 100644 index 64d65ca..0000000 --- a/HNReaderUITests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - -