diff --git a/ACKategories.xcodeproj/project.pbxproj b/ACKategories.xcodeproj/project.pbxproj index 0e98bd56..cedabe85 100644 --- a/ACKategories.xcodeproj/project.pbxproj +++ b/ACKategories.xcodeproj/project.pbxproj @@ -8,6 +8,20 @@ /* Begin PBXBuildFile section */ 690BCB8D2B3DB62400EDA6F8 /* Networking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 693A925D2B3DB290008B3DC3 /* Networking.framework */; }; + 691A1FCF2B45931800B52E56 /* ACKategories.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69ACD6C22AFD130C0021127B /* ACKategories.framework */; }; + 691A1FD52B45932A00B52E56 /* FirebaseFetcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 691A1FD42B45932A00B52E56 /* FirebaseFetcher.swift */; }; + 691A1FE42B4593EB00B52E56 /* GoogleAppMeasurement.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FD82B4593EB00B52E56 /* GoogleAppMeasurement.xcframework */; }; + 691A1FE62B4593EB00B52E56 /* FirebaseCoreInternal.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FD92B4593EB00B52E56 /* FirebaseCoreInternal.xcframework */; }; + 691A1FE82B4593EB00B52E56 /* FirebaseAnalytics.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FDA2B4593EB00B52E56 /* FirebaseAnalytics.xcframework */; }; + 691A1FEA2B4593EB00B52E56 /* FBLPromises.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FDB2B4593EB00B52E56 /* FBLPromises.xcframework */; }; + 691A1FEC2B4593EB00B52E56 /* FirebaseRemoteConfig.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FDC2B4593EB00B52E56 /* FirebaseRemoteConfig.xcframework */; }; + 691A1FEE2B4593EB00B52E56 /* GoogleUtilities.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FDD2B4593EB00B52E56 /* GoogleUtilities.xcframework */; }; + 691A1FF02B4593EB00B52E56 /* nanopb.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FDE2B4593EB00B52E56 /* nanopb.xcframework */; }; + 691A1FF22B4593EB00B52E56 /* FirebaseInstallations.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FDF2B4593EB00B52E56 /* FirebaseInstallations.xcframework */; }; + 691A1FF42B4593EB00B52E56 /* GoogleAppMeasurementIdentitySupport.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FE02B4593EB00B52E56 /* GoogleAppMeasurementIdentitySupport.xcframework */; }; + 691A1FF62B4593EC00B52E56 /* FirebaseABTesting.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FE12B4593EB00B52E56 /* FirebaseABTesting.xcframework */; }; + 691A1FF82B4593EC00B52E56 /* FirebaseCore.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FE22B4593EB00B52E56 /* FirebaseCore.xcframework */; }; + 691A1FFA2B4593EC00B52E56 /* FirebaseSharedSwift.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 691A1FE32B4593EB00B52E56 /* FirebaseSharedSwift.xcframework */; }; 691B9AD92AFD1E5C008AE7BD /* ACKategories.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 69ACD6C22AFD130C0021127B /* ACKategories.framework */; }; 691B9ADA2AFD1E5C008AE7BD /* ACKategories.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 69ACD6C22AFD130C0021127B /* ACKategories.framework */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 6922C77D2AFD1C1A00519CDF /* UINavigationControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6922C77C2AFD1C1A00519CDF /* UINavigationControllerTests.swift */; }; @@ -143,6 +157,13 @@ remoteGlobalIDString = 693A925C2B3DB290008B3DC3; remoteInfo = Networking; }; + 691A1FD12B45931800B52E56 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 69E819DF23C773010054687B /* Project object */; + proxyType = 1; + remoteGlobalIDString = 69ACD6C12AFD130C0021127B; + remoteInfo = ACKategories; + }; 691B9ADB2AFD1E5C008AE7BD /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 69E819DF23C773010054687B /* Project object */; @@ -217,6 +238,21 @@ /* Begin PBXFileReference section */ 690BCB8C2B3DB5DE00EDA6F8 /* Networking.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; name = Networking.xctestplan; path = Tests/NetworkingTests/Networking.xctestplan; sourceTree = SOURCE_ROOT; }; + 691A1FC72B4592BC00B52E56 /* FirebaseFetcher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FirebaseFetcher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 691A1FD42B45932A00B52E56 /* FirebaseFetcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FirebaseFetcher.swift; sourceTree = ""; }; + 691A1FD62B45935400B52E56 /* Cartfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Cartfile; sourceTree = ""; }; + 691A1FD82B4593EB00B52E56 /* GoogleAppMeasurement.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleAppMeasurement.xcframework; path = Carthage/Build/GoogleAppMeasurement.xcframework; sourceTree = ""; }; + 691A1FD92B4593EB00B52E56 /* FirebaseCoreInternal.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseCoreInternal.xcframework; path = Carthage/Build/FirebaseCoreInternal.xcframework; sourceTree = ""; }; + 691A1FDA2B4593EB00B52E56 /* FirebaseAnalytics.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseAnalytics.xcframework; path = Carthage/Build/FirebaseAnalytics.xcframework; sourceTree = ""; }; + 691A1FDB2B4593EB00B52E56 /* FBLPromises.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FBLPromises.xcframework; path = Carthage/Build/FBLPromises.xcframework; sourceTree = ""; }; + 691A1FDC2B4593EB00B52E56 /* FirebaseRemoteConfig.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseRemoteConfig.xcframework; path = Carthage/Build/FirebaseRemoteConfig.xcframework; sourceTree = ""; }; + 691A1FDD2B4593EB00B52E56 /* GoogleUtilities.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleUtilities.xcframework; path = Carthage/Build/GoogleUtilities.xcframework; sourceTree = ""; }; + 691A1FDE2B4593EB00B52E56 /* nanopb.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = nanopb.xcframework; path = Carthage/Build/nanopb.xcframework; sourceTree = ""; }; + 691A1FDF2B4593EB00B52E56 /* FirebaseInstallations.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseInstallations.xcframework; path = Carthage/Build/FirebaseInstallations.xcframework; sourceTree = ""; }; + 691A1FE02B4593EB00B52E56 /* GoogleAppMeasurementIdentitySupport.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleAppMeasurementIdentitySupport.xcframework; path = Carthage/Build/GoogleAppMeasurementIdentitySupport.xcframework; sourceTree = ""; }; + 691A1FE12B4593EB00B52E56 /* FirebaseABTesting.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseABTesting.xcframework; path = Carthage/Build/FirebaseABTesting.xcframework; sourceTree = ""; }; + 691A1FE22B4593EB00B52E56 /* FirebaseCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseCore.xcframework; path = Carthage/Build/FirebaseCore.xcframework; sourceTree = ""; }; + 691A1FE32B4593EB00B52E56 /* FirebaseSharedSwift.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FirebaseSharedSwift.xcframework; path = Carthage/Build/FirebaseSharedSwift.xcframework; sourceTree = ""; }; 6922C77C2AFD1C1A00519CDF /* UINavigationControllerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UINavigationControllerTests.swift; sourceTree = ""; }; 6922C77E2AFD1C3300519CDF /* ACKategoriesResponder.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = ACKategoriesResponder.xctestplan; sourceTree = ""; }; 6922C77F2AFD1C5000519CDF /* ACKategories.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = ACKategories.xctestplan; sourceTree = ""; }; @@ -348,6 +384,26 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 691A1FC42B4592BC00B52E56 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 691A1FFA2B4593EC00B52E56 /* FirebaseSharedSwift.xcframework in Frameworks */, + 691A1FE42B4593EB00B52E56 /* GoogleAppMeasurement.xcframework in Frameworks */, + 691A1FF82B4593EC00B52E56 /* FirebaseCore.xcframework in Frameworks */, + 691A1FF42B4593EB00B52E56 /* GoogleAppMeasurementIdentitySupport.xcframework in Frameworks */, + 691A1FE82B4593EB00B52E56 /* FirebaseAnalytics.xcframework in Frameworks */, + 691A1FEE2B4593EB00B52E56 /* GoogleUtilities.xcframework in Frameworks */, + 691A1FCF2B45931800B52E56 /* ACKategories.framework in Frameworks */, + 691A1FEA2B4593EB00B52E56 /* FBLPromises.xcframework in Frameworks */, + 691A1FEC2B4593EB00B52E56 /* FirebaseRemoteConfig.xcframework in Frameworks */, + 691A1FF62B4593EC00B52E56 /* FirebaseABTesting.xcframework in Frameworks */, + 691A1FE62B4593EB00B52E56 /* FirebaseCoreInternal.xcframework in Frameworks */, + 691A1FF02B4593EB00B52E56 /* nanopb.xcframework in Frameworks */, + 691A1FF22B4593EB00B52E56 /* FirebaseInstallations.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 693A925A2B3DB290008B3DC3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -408,9 +464,29 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 691A1FCE2B45930400B52E56 /* FirebaseFetcher */ = { + isa = PBXGroup; + children = ( + 691A1FD42B45932A00B52E56 /* FirebaseFetcher.swift */, + ); + path = FirebaseFetcher; + sourceTree = ""; + }; 691B9AD82AFD1E5C008AE7BD /* Frameworks */ = { isa = PBXGroup; children = ( + 691A1FDB2B4593EB00B52E56 /* FBLPromises.xcframework */, + 691A1FE12B4593EB00B52E56 /* FirebaseABTesting.xcframework */, + 691A1FDA2B4593EB00B52E56 /* FirebaseAnalytics.xcframework */, + 691A1FE22B4593EB00B52E56 /* FirebaseCore.xcframework */, + 691A1FD92B4593EB00B52E56 /* FirebaseCoreInternal.xcframework */, + 691A1FDF2B4593EB00B52E56 /* FirebaseInstallations.xcframework */, + 691A1FDC2B4593EB00B52E56 /* FirebaseRemoteConfig.xcframework */, + 691A1FE32B4593EB00B52E56 /* FirebaseSharedSwift.xcframework */, + 691A1FD82B4593EB00B52E56 /* GoogleAppMeasurement.xcframework */, + 691A1FE02B4593EB00B52E56 /* GoogleAppMeasurementIdentitySupport.xcframework */, + 691A1FDD2B4593EB00B52E56 /* GoogleUtilities.xcframework */, + 691A1FDE2B4593EB00B52E56 /* nanopb.xcframework */, ); name = Frameworks; sourceTree = ""; @@ -552,6 +628,7 @@ 69E0A5F32AFD10BE00C8E8D9 /* Sources */ = { isa = PBXGroup; children = ( + 691A1FCE2B45930400B52E56 /* FirebaseFetcher */, 69E0A5F42AFD10BE00C8E8D9 /* ACKategories */, 693A92982B3DB394008B3DC3 /* ACKategoriesTesting */, 693A92722B3DB2AA008B3DC3 /* Networking */, @@ -710,6 +787,7 @@ 69E819DE23C773010054687B = { isa = PBXGroup; children = ( + 691A1FD62B45935400B52E56 /* Cartfile */, 697B023227DB65B50082F4AC /* CHANGELOG.md */, 695096D923C7908B00E8F457 /* ACKategoriesExample */, 69E819EB23C773240054687B /* Products */, @@ -729,6 +807,7 @@ 693A925D2B3DB290008B3DC3 /* Networking.framework */, 693A92642B3DB290008B3DC3 /* NetworkingTests.xctest */, 693A92912B3DB388008B3DC3 /* ACKategoriesTesting.framework */, + 691A1FC72B4592BC00B52E56 /* FirebaseFetcher.framework */, ); name = Products; sourceTree = ""; @@ -834,6 +913,13 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ + 691A1FC22B4592BC00B52E56 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 693A92582B3DB290008B3DC3 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -858,6 +944,25 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + 691A1FC62B4592BC00B52E56 /* FirebaseFetcher */ = { + isa = PBXNativeTarget; + buildConfigurationList = 691A1FCD2B4592BC00B52E56 /* Build configuration list for PBXNativeTarget "FirebaseFetcher" */; + buildPhases = ( + 691A1FC22B4592BC00B52E56 /* Headers */, + 691A1FC32B4592BC00B52E56 /* Sources */, + 691A1FC42B4592BC00B52E56 /* Frameworks */, + 691A1FC52B4592BC00B52E56 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 691A1FD22B45931800B52E56 /* PBXTargetDependency */, + ); + name = FirebaseFetcher; + productName = FirebaseFetcher; + productReference = 691A1FC72B4592BC00B52E56 /* FirebaseFetcher.framework */; + productType = "com.apple.product-type.framework"; + }; 693A925C2B3DB290008B3DC3 /* Networking */ = { isa = PBXNativeTarget; buildConfigurationList = 693A92702B3DB290008B3DC3 /* Build configuration list for PBXNativeTarget "Networking" */; @@ -1002,6 +1107,10 @@ LastSwiftUpdateCheck = 1510; LastUpgradeCheck = 1500; TargetAttributes = { + 691A1FC62B4592BC00B52E56 = { + CreatedOnToolsVersion = 15.1; + LastSwiftMigration = 1510; + }; 693A925C2B3DB290008B3DC3 = { CreatedOnToolsVersion = 15.1; }; @@ -1049,11 +1158,19 @@ 693A925C2B3DB290008B3DC3 /* Networking */, 693A92632B3DB290008B3DC3 /* NetworkingTests */, 693A92902B3DB388008B3DC3 /* ACKategoriesTesting */, + 691A1FC62B4592BC00B52E56 /* FirebaseFetcher */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 691A1FC52B4592BC00B52E56 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 693A925B2B3DB290008B3DC3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1108,6 +1225,14 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 691A1FC32B4592BC00B52E56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 691A1FD52B45932A00B52E56 /* FirebaseFetcher.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 693A92592B3DB290008B3DC3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1280,6 +1405,11 @@ target = 693A925C2B3DB290008B3DC3 /* Networking */; targetProxy = 690BCB8F2B3DB62400EDA6F8 /* PBXContainerItemProxy */; }; + 691A1FD22B45931800B52E56 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 69ACD6C12AFD130C0021127B /* ACKategories */; + targetProxy = 691A1FD12B45931800B52E56 /* PBXContainerItemProxy */; + }; 691B9ADC2AFD1E5C008AE7BD /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 69ACD6C12AFD130C0021127B /* ACKategories */; @@ -1323,6 +1453,128 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + 691A1FCB2B4592BC00B52E56 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = cz.ackee.FirebaseFetcher; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTS_MACCATALYST = YES; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 691A1FCC2B4592BC00B52E56 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = cz.ackee.FirebaseFetcher; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator"; + SUPPORTS_MACCATALYST = YES; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 693A926C2B3DB290008B3DC3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2164,6 +2416,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 691A1FCD2B4592BC00B52E56 /* Build configuration list for PBXNativeTarget "FirebaseFetcher" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 691A1FCB2B4592BC00B52E56 /* Debug */, + 691A1FCC2B4592BC00B52E56 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 693A92702B3DB290008B3DC3 /* Build configuration list for PBXNativeTarget "Networking" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Cartfile b/Cartfile new file mode 100644 index 00000000..f24f2cef --- /dev/null +++ b/Cartfile @@ -0,0 +1,2 @@ +binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" ~> 10.19 +binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseRemoteConfigBinary.json" ~> 10.19 diff --git a/Cartfile.resolved b/Cartfile.resolved new file mode 100644 index 00000000..c18a4459 --- /dev/null +++ b/Cartfile.resolved @@ -0,0 +1,2 @@ +binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" "10.19.0" +binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseRemoteConfigBinary.json" "10.19.0" diff --git a/Package.resolved b/Package.resolved new file mode 100644 index 00000000..782e7f22 --- /dev/null +++ b/Package.resolved @@ -0,0 +1,122 @@ +{ + "pins" : [ + { + "identity" : "abseil-cpp-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/abseil-cpp-binary.git", + "state" : { + "revision" : "bfc0b6f81adc06ce5121eb23f628473638d67c5c", + "version" : "1.2022062300.0" + } + }, + { + "identity" : "app-check", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/app-check.git", + "state" : { + "revision" : "5746b2d35c91c50581590ed97abe4c06b5037274", + "version" : "10.18.0" + } + }, + { + "identity" : "firebase-ios-sdk", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/firebase-ios-sdk", + "state" : { + "revision" : "c60c958e707c50a9cf8bcb7cfd7d51c566d726c5", + "version" : "10.19.1" + } + }, + { + "identity" : "googleappmeasurement", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleAppMeasurement.git", + "state" : { + "revision" : "6b332152355c372ace9966d8ee76ed191f97025e", + "version" : "10.17.0" + } + }, + { + "identity" : "googledatatransport", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleDataTransport.git", + "state" : { + "revision" : "a732a4b47f59e4f725a2ea10f0c77e93a7131117", + "version" : "9.3.0" + } + }, + { + "identity" : "googleutilities", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/GoogleUtilities.git", + "state" : { + "revision" : "bc27fad73504f3d4af235de451f02ee22586ebd3", + "version" : "7.12.1" + } + }, + { + "identity" : "grpc-binary", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/grpc-binary.git", + "state" : { + "revision" : "a673bc2937fbe886dd1f99c401b01b6d977a9c98", + "version" : "1.49.1" + } + }, + { + "identity" : "gtm-session-fetcher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/gtm-session-fetcher.git", + "state" : { + "revision" : "115f75e43851774934d695449a4836123c3246e1", + "version" : "3.2.0" + } + }, + { + "identity" : "interop-ios-for-google-sdks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/interop-ios-for-google-sdks.git", + "state" : { + "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648", + "version" : "100.0.0" + } + }, + { + "identity" : "leveldb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/leveldb.git", + "state" : { + "revision" : "9d108e9112aa1d65ce508facf804674546116d9c", + "version" : "1.22.3" + } + }, + { + "identity" : "nanopb", + "kind" : "remoteSourceControl", + "location" : "https://github.com/firebase/nanopb.git", + "state" : { + "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692", + "version" : "2.30909.0" + } + }, + { + "identity" : "promises", + "kind" : "remoteSourceControl", + "location" : "https://github.com/google/promises.git", + "state" : { + "revision" : "e70e889c0196c76d22759eb50d6a0270ca9f1d9e", + "version" : "2.3.1" + } + }, + { + "identity" : "swift-protobuf", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-protobuf.git", + "state" : { + "revision" : "65e8f29b2d63c4e38e736b25c27b83e012159be8", + "version" : "1.25.2" + } + } + ], + "version" : 2 +} diff --git a/Package.swift b/Package.swift index 530a77f1..2b601258 100644 --- a/Package.swift +++ b/Package.swift @@ -13,6 +13,13 @@ let package = Package( .library(name: "ACKategories", targets: ["ACKategories"]), .library(name: "ACKategoriesTesting", targets: ["ACKategoriesTesting"]), .library(name: "Networking", targets: ["Networking"]), + .library(name: "FirebaseFetcher", targets: ["FirebaseFetcher"]), + ], + dependencies: [ + .package( + url: "https://github.com/firebase/firebase-ios-sdk", + from: "10.19.0" + ), ], targets: [ .target(name: "ACKategories"), @@ -38,5 +45,12 @@ let package = Package( "Networking", ] ), + .target( + name: "FirebaseFetcher", + dependencies: [ + "ACKategories", + .product(name: "FirebaseRemoteConfig", package: "firebase-ios-sdk"), + ] + ), ] ) diff --git a/Sources/FirebaseFetcher/FirebaseFetcher.swift b/Sources/FirebaseFetcher/FirebaseFetcher.swift new file mode 100644 index 00000000..88245ae9 --- /dev/null +++ b/Sources/FirebaseFetcher/FirebaseFetcher.swift @@ -0,0 +1,22 @@ +import ACKategories +import FirebaseRemoteConfig + +public final class FirebaseFetcher: MinBuildNumberFetcher { + public var minBuildNumber: Int { + get async throws { + try await remoteConfig.fetchAndActivate() + return remoteConfig[decodedValue: key] ?? Int.max + } + } + + private let key: String + private let remoteConfig: RemoteConfig + + public init( + key: String, + remoteConfig: RemoteConfig = RemoteConfig.remoteConfig() + ) { + self.key = key + self.remoteConfig = remoteConfig + } +}