diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 34370def..c5b8dd21 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,48 +8,29 @@ on: jobs: lint: - runs-on: macos-13 + runs-on: macos-15 steps: - - uses: actions/checkout@v3 - - uses: ruby/setup-ruby@v1 - with: - ruby-version: '2.7.3' - bundler-cache: true + - uses: actions/checkout@v4 + - name: Install SwiftLint + run: brew install swiftlint - name: Run SwiftLint - uses: maierj/fastlane-action@v3.0.0 - with: - lane: 'lint' - subdirectory: 'fastlane' + run: fastlane lint test: - runs-on: macos-13 + runs-on: macos-15 steps: - - uses: actions/checkout@v3 - - uses: ruby/setup-ruby@v1 - with: - ruby-version: '2.7.3' - bundler-cache: true - - uses: AckeeCZ/load-xcode-version@1.0 + - uses: actions/checkout@v4 + - uses: AckeeCZ/load-xcode-version@v1 - name: Run UI Tests - uses: maierj/fastlane-action@v3.0.0 - with: - lane: 'test' - subdirectory: 'fastlane' + run: fastlane test build: - runs-on: macos-13 + runs-on: macos-15 steps: - - uses: actions/checkout@v3 - - uses: ruby/setup-ruby@v1 - with: - ruby-version: '2.7.3' - bundler-cache: true - - uses: AckeeCZ/load-xcode-version@1.0 + - uses: actions/checkout@v4 + - uses: AckeeCZ/load-xcode-version@v1 - name: Build - uses: maierj/fastlane-action@v3.0.0 - with: - lane: 'build' - subdirectory: 'fastlane' + run: fastlane build diff --git a/.github/xcode-version b/.github/xcode-version index 6dfe8b12..c32b0ec5 100644 --- a/.github/xcode-version +++ b/.github/xcode-version @@ -1 +1 @@ -14.3.1 +16.1 diff --git a/App/Settings/LoginView.swift b/App/Settings/LoginView.swift index f4f08c90..cdc59681 100644 --- a/App/Settings/LoginView.swift +++ b/App/Settings/LoginView.swift @@ -120,6 +120,7 @@ struct LoginView: View { } struct RoundedTextField: TextFieldStyle { + // swiftlint:disable:next identifier_name func _body(configuration: TextField) -> some View { configuration .padding(.all, 10) diff --git a/Extensions/HackersActionExtension/Info.plist b/Extensions/HackersActionExtension/Info.plist index 71065de8..db5a00cc 100644 --- a/Extensions/HackersActionExtension/Info.plist +++ b/Extensions/HackersActionExtension/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 4.8.0 + 4.8.1 CFBundleVersion - 123 + 124 NSExtension NSExtensionAttributes diff --git a/Extensions/HackersShareExtension/Info.plist b/Extensions/HackersShareExtension/Info.plist index 45f414e5..83a9a8c7 100644 --- a/Extensions/HackersShareExtension/Info.plist +++ b/Extensions/HackersShareExtension/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 4.8.0 + 4.8.1 CFBundleVersion - 123 + 124 NSExtension NSExtensionAttributes diff --git a/Hackers.xcodeproj/project.pbxproj b/Hackers.xcodeproj/project.pbxproj index 01626b83..6caa4bc5 100644 --- a/Hackers.xcodeproj/project.pbxproj +++ b/Hackers.xcodeproj/project.pbxproj @@ -647,30 +647,22 @@ BuildIndependentTargetsInParallel = YES; CLASSPREFIX = GU; LastSwiftUpdateCheck = 1150; - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1610; ORGANIZATIONNAME = "Glass Umbrella"; TargetAttributes = { 2419D01F24898DF700740184 = { CreatedOnToolsVersion = 11.5; - DevelopmentTeam = 2KB59GPA9B; - ProvisioningStyle = Manual; }; 245345EB22466EA8001AF1CE = { CreatedOnToolsVersion = 10.1; - DevelopmentTeam = 2KB59GPA9B; LastSwiftMigration = 1020; - ProvisioningStyle = Automatic; TestTargetID = 24F39F8418AFB1150055F8DC; }; 24C10BF224866D3F00B93F68 = { CreatedOnToolsVersion = 11.5; - DevelopmentTeam = 2KB59GPA9B; - ProvisioningStyle = Manual; }; 24F39F8418AFB1150055F8DC = { - DevelopmentTeam = 2KB59GPA9B; LastSwiftMigration = 1020; - ProvisioningStyle = Manual; }; }; }; @@ -961,11 +953,13 @@ CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 106; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = 2KB59GPA9B; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 2KB59GPA9B; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = Extensions/HackersActionExtension/Info.plist; @@ -980,7 +974,8 @@ MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.weiranzhang.Hackers.HackersActionExtension; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Hackers Dev Extensions Profile"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Hackers Extensions Dev"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -999,12 +994,14 @@ CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 106; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 2KB59GPA9B; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 2KB59GPA9B; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = Extensions/HackersActionExtension/Info.plist; @@ -1019,7 +1016,8 @@ MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.weiranzhang.Hackers.HackersActionExtension; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Hackers Prod Extensions Profile"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Hackers Extensions Prod"; SKIP_INSTALL = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1036,14 +1034,17 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; + CODE_SIGN_STYLE = Manual; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = 2KB59GPA9B; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 2KB59GPA9B; + "DEVELOPMENT_TEAM[sdk=macosx*]" = ""; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = Tests/HackersUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1051,10 +1052,10 @@ ); MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = co.weiran.HackersUITests; + PRODUCT_BUNDLE_IDENTIFIER = com.weiranzhang.Hackers.UITests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Hackers Extensions Dev"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -1073,15 +1074,18 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; + CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 2KB59GPA9B; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 2KB59GPA9B; + "DEVELOPMENT_TEAM[sdk=macosx*]" = ""; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = Tests/HackersUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -1089,10 +1093,10 @@ ); MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = co.weiran.HackersUITests; + PRODUCT_BUNDLE_IDENTIFIER = com.weiranzhang.Hackers.UITests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Hackers Extensions Dev"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_TARGET_NAME = Hackers; @@ -1108,11 +1112,13 @@ CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 75; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = 2KB59GPA9B; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 2KB59GPA9B; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = Extensions/HackersShareExtension/Info.plist; @@ -1126,7 +1132,8 @@ MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.weiranzhang.Hackers.HackersShareExtension; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Hackers Dev Extensions Profile"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Hackers Extensions Dev"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -1144,12 +1151,14 @@ CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 75; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 2KB59GPA9B; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 2KB59GPA9B; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; INFOPLIST_FILE = Extensions/HackersShareExtension/Info.plist; @@ -1163,7 +1172,8 @@ MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.weiranzhang.Hackers.HackersShareExtension; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Hackers Prod Extensions Profile"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Hackers Extensions Prod"; SKIP_INSTALL = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1174,6 +1184,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -1227,6 +1238,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -1277,23 +1289,27 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "App/Supporting Files/Hackers.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 123; - DEVELOPMENT_TEAM = 2KB59GPA9B; + CURRENT_PROJECT_VERSION = 124; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 2KB59GPA9B; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "App/Supporting Files/Hackers2-Prefix.pch"; INFOPLIST_FILE = "App/Supporting Files/Hackers-Info.plist"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.news"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 4.8.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.weiranzhang.$(PRODUCT_NAME:rfc1034identifier)"; + MARKETING_VERSION = 4.8.1; + PRODUCT_BUNDLE_IDENTIFIER = com.weiranzhang.Hackers; PRODUCT_NAME = Hackers; - PROVISIONING_PROFILE_SPECIFIER = "Hackers Dev Profile"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Hackers Dev Profile"; SWIFT_ENFORCE_EXCLUSIVE_ACCESS = off; SWIFT_OBJC_BRIDGING_HEADER = "App/Supporting Files/Hackers2-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -1309,23 +1325,27 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "App/Supporting Files/Hackers.entitlements"; - CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 123; - DEVELOPMENT_TEAM = 2KB59GPA9B; + CURRENT_PROJECT_VERSION = 124; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 2KB59GPA9B; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "App/Supporting Files/Hackers2-Prefix.pch"; INFOPLIST_FILE = "App/Supporting Files/Hackers-Info.plist"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.news"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 4.8.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.weiranzhang.$(PRODUCT_NAME:rfc1034identifier)"; + MARKETING_VERSION = 4.8.1; + PRODUCT_BUNDLE_IDENTIFIER = com.weiranzhang.Hackers; PRODUCT_NAME = Hackers; - PROVISIONING_PROFILE_SPECIFIER = "Hackers Prod Profile"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Hackers Prod Profile"; SWIFT_ENFORCE_EXCLUSIVE_ACCESS = off; SWIFT_OBJC_BRIDGING_HEADER = "App/Supporting Files/Hackers2-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/Hackers.xcodeproj/xcshareddata/xcschemes/Hackers.xcscheme b/Hackers.xcodeproj/xcshareddata/xcschemes/Hackers.xcscheme index 6fc13db7..2aeee8c5 100644 --- a/Hackers.xcodeproj/xcshareddata/xcschemes/Hackers.xcscheme +++ b/Hackers.xcodeproj/xcshareddata/xcschemes/Hackers.xcscheme @@ -1,6 +1,6 @@