diff --git a/.github/workflows/scripts/swift-integration.dart b/.github/workflows/scripts/swift-integration.dart index fe3d50e5e3ca..220912293859 100644 --- a/.github/workflows/scripts/swift-integration.dart +++ b/.github/workflows/scripts/swift-integration.dart @@ -10,6 +10,8 @@ void main() async { await buildSwiftExampleApp('ios', 'cloud_firestore'); await buildSwiftExampleApp('macos', 'firebase_core'); await buildSwiftExampleApp('macos', 'cloud_firestore'); + await buildSwiftExampleApp('ios', 'firebase_remote_config'); + await buildSwiftExampleApp('macos', 'firebase_remote_config'); } Future deleteFirstLine(String filePath) async { diff --git a/packages/firebase_remote_config/firebase_remote_config/example/.gitignore b/packages/firebase_remote_config/firebase_remote_config/example/.gitignore index 29a3a5017f04..79c113f9b501 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/.gitignore +++ b/packages/firebase_remote_config/firebase_remote_config/example/.gitignore @@ -5,9 +5,11 @@ *.swp .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related diff --git a/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Debug.xcconfig b/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Debug.xcconfig index e8efba114687..ec97fc6f3021 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Debug.xcconfig +++ b/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1,2 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Release.xcconfig b/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Release.xcconfig index 399e9340e6f6..c4855bfe2000 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Release.xcconfig +++ b/packages/firebase_remote_config/firebase_remote_config/example/ios/Flutter/Release.xcconfig @@ -1,2 +1,2 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/project.pbxproj index d9615377ef8d..e3bc35544a1d 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3727B1F241E6C1CC3918268E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D61E2AA0A4F0CAD8AC14E90 /* Pods_Runner.framework */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 7633732D245146D3E8D89BAC /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 96648553A35D8487B2A4CA10 /* GoogleService-Info.plist */; }; 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; @@ -17,7 +18,7 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - F9922BB7FAC6B5F18E0D7EBC /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8A8A9F141EBA58EA62CE0E76 /* Pods_Runner.framework */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -36,13 +37,12 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 17E97D121885EC16AACB80C0 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 6AC60063471A92E2CD943EC3 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 4D61E2AA0A4F0CAD8AC14E90 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5877CA425A3244F1F5D2A97A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 8A8A9F141EBA58EA62CE0E76 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 96648553A35D8487B2A4CA10 /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; @@ -52,6 +52,7 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + BDB0B468AA7D8CAD6C211602 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -59,21 +60,32 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F9922BB7FAC6B5F18E0D7EBC /* Pods_Runner.framework in Frameworks */, + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, + 3727B1F241E6C1CC3918268E /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 23DAF82DF3F4525BB2F90DDE /* Frameworks */ = { + 18A23727156B71DF2EBC4BBF /* Frameworks */ = { isa = PBXGroup; children = ( - 8A8A9F141EBA58EA62CE0E76 /* Pods_Runner.framework */, + 4D61E2AA0A4F0CAD8AC14E90 /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; }; + 657DD3F2D5A59EA96D647065 /* Pods */ = { + isa = PBXGroup; + children = ( + BDB0B468AA7D8CAD6C211602 /* Pods-Runner.debug.xcconfig */, + 5877CA425A3244F1F5D2A97A /* Pods-Runner.release.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -91,9 +103,9 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - DC0A69E1FF6565F85D3F7801 /* Pods */, - 23DAF82DF3F4525BB2F90DDE /* Frameworks */, 96648553A35D8487B2A4CA10 /* GoogleService-Info.plist */, + 657DD3F2D5A59EA96D647065 /* Pods */, + 18A23727156B71DF2EBC4BBF /* Frameworks */, ); sourceTree = ""; }; @@ -129,30 +141,23 @@ name = "Supporting Files"; sourceTree = ""; }; - DC0A69E1FF6565F85D3F7801 /* Pods */ = { - isa = PBXGroup; - children = ( - 6AC60063471A92E2CD943EC3 /* Pods-Runner.debug.xcconfig */, - 17E97D121885EC16AACB80C0 /* Pods-Runner.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 97C146ED1CF9000F007C117D /* Runner */ = { + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 8F3B99257FEBEE68D8CDFD61 /* [CP] Check Pods Manifest.lock */, + 77F626D5D401DBC3550E44D8 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - AB066FC83FEE088CB7E33EA5 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -167,6 +172,9 @@ /* Begin PBXProject section */ 97C146E61CF9000F007C117D /* Project object */ = { + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); isa = PBXProject; attributes = { LastUpgradeCheck = 1510; @@ -230,16 +238,20 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 8F3B99257FEBEE68D8CDFD61 /* [CP] Check Pods Manifest.lock */ = { + 77F626D5D401DBC3550E44D8 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); outputPaths = ( "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); @@ -263,38 +275,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - AB066FC83FEE088CB7E33EA5 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/FirebaseABTesting/FirebaseABTesting.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCore/FirebaseCore.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseCoreInternal/FirebaseCoreInternal.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseInstallations/FirebaseInstallations.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseRemoteConfig/FirebaseRemoteConfig.framework", - "${BUILT_PRODUCTS_DIR}/FirebaseSharedSwift/FirebaseSharedSwift.framework", - "${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework", - "${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseABTesting.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCore.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreInternal.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseInstallations.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseRemoteConfig.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseSharedSwift.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -502,6 +482,18 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; } diff --git a/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 7033c69167dc..31ab5b7605e9 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_remote_config/firebase_remote_config/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - B56B4B676B3872703CAA9A4A /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - C240441090B66BCBDD8ED197 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -475,7 +391,6 @@ /* Begin XCBuildConfiguration section */ 331C80DB294CF71000263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D05220B2DDE2B13D9D89BBAC /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -490,7 +405,6 @@ }; 331C80DC294CF71000263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 85F29828B5EC1D7E50EA7026 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -505,7 +419,6 @@ }; 331C80DD294CF71000263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1977B40602850A4EBC33C6D7 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CURRENT_PROJECT_VERSION = 1; @@ -574,6 +487,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = YYX2P3XVJ7; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -701,6 +615,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = YYX2P3XVJ7; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -722,6 +637,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = YYX2P3XVJ7; INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -792,6 +708,20 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 33CC10E52044A3C60003C045 /* Project object */; } diff --git a/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 8fedab682d28..9963aa3613b4 100644 --- a/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/firebase_remote_config/firebase_remote_config/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,10 +1,28 @@ + + + + + + + + + + Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config.podspec b/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config.podspec index c890e620cbeb..364c66c7885c 100644 --- a/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config.podspec +++ b/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config.podspec @@ -25,8 +25,8 @@ Pod::Spec.new do |s| s.authors = 'The Chromium Authors' s.source = { :path => '.' } - s.source_files = 'Classes/**/*.{h,m}' - s.public_header_files = 'Classes/*.h' + s.source_files = 'firebase_remote_config/Sources/firebase_remote_config/**/*.{h,m}' + s.public_header_files = 'firebase_remote_config/Sources/firebase_remote_config/include/*.h' s.ios.deployment_target = '13.0' s.dependency 'Flutter' @@ -36,7 +36,7 @@ Pod::Spec.new do |s| s.static_framework = true s.pod_target_xcconfig = { - 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\@\\\"#{library_version}\\\" LIBRARY_NAME=\\@\\\"flutter-fire-rc\\\"", + 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\\"#{library_version}\\\" LIBRARY_NAME=\\\"flutter-fire-rc\\\"", 'DEFINES_MODULE' => 'YES' } end diff --git a/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Package.swift b/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Package.swift new file mode 100644 index 000000000000..be1c585d012f --- /dev/null +++ b/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Package.swift @@ -0,0 +1,120 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +// Copyright 2024, the Chromium project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import Foundation +import PackageDescription + +enum ConfigurationError: Error { + case fileNotFound(String) + case parsingError(String) + case invalidFormat(String) +} + +let remoteConfigDirectory = String(URL(string: #file)!.deletingLastPathComponent().absoluteString + .dropLast()) + +func loadFirebaseSDKVersion() throws -> String { + let firebaseCoreScriptPath = NSString.path(withComponents: [ + remoteConfigDirectory, + "..", + "generated_firebase_sdk_version.txt", + ]) + do { + let version = try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8) + .trimmingCharacters(in: .whitespacesAndNewlines) + return version + } catch { + throw ConfigurationError + .fileNotFound("Error loading or parsing generated_firebase_sdk_version.txt: \(error)") + } +} + +func loadPubspecVersions() throws -> (packageVersion: String, firebaseCoreVersion: String) { + let pubspecPath = NSString.path(withComponents: [ + remoteConfigDirectory, + "..", + "..", + "pubspec.yaml", + ]) + do { + let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8) + let lines = yamlString.split(separator: "\n") + + guard let packageVersionLine = lines.first(where: { $0.starts(with: "version:") }) else { + throw ConfigurationError.invalidFormat("No package version line found in pubspec.yaml") + } + var packageVersion = packageVersionLine.split(separator: ":")[1] + .trimmingCharacters(in: .whitespaces) + .replacingOccurrences(of: "+", with: "-") + packageVersion = packageVersion.replacingOccurrences(of: "^", with: "") + + guard let firebaseCoreVersionLine = lines.first(where: { $0.contains("firebase_core:") }) else { + throw ConfigurationError + .invalidFormat("No firebase_core dependency version line found in pubspec.yaml") + } + var firebaseCoreVersion = firebaseCoreVersionLine.split(separator: ":")[1] + .trimmingCharacters(in: .whitespaces) + firebaseCoreVersion = firebaseCoreVersion.replacingOccurrences(of: "^", with: "") + + return (packageVersion, firebaseCoreVersion) + } catch { + throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)") + } +} + +let library_version: String +let firebase_sdk_version_string: String +let firebase_core_version_string: String +let shared_spm_tag = "-firebase-core-swift" + +do { + library_version = try loadPubspecVersions().packageVersion + firebase_sdk_version_string = try loadFirebaseSDKVersion() + firebase_core_version_string = try loadPubspecVersions().firebaseCoreVersion +} catch { + fatalError("Failed to load configuration: \(error)") +} + +guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { + fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)") +} + +guard let shared_spm_version = Version("\(firebase_core_version_string)\(shared_spm_tag)") else { + fatalError("Invalid firebase_core version: \(firebase_core_version_string)\(shared_spm_tag)") +} + +let package = Package( + name: "firebase_remote_config", + platforms: [ + .iOS("13.0"), + ], + products: [ + .library(name: "firebase-remote-config", targets: ["firebase_remote_config"]), + ], + dependencies: [ + .package(url: "https://github.com/firebase/firebase-ios-sdk", from: firebase_sdk_version), + .package(url: "https://github.com/firebase/flutterfire", exact: shared_spm_version), + ], + targets: [ + .target( + name: "firebase_remote_config", + dependencies: [ + .product(name: "FirebaseRemoteConfig", package: "firebase-ios-sdk"), + // Wrapper dependency + .product(name: "firebase-core-shared", package: "flutterfire"), + ], + resources: [ + .process("Resources"), + ], + cSettings: [ + .headerSearchPath("include"), + .define("LIBRARY_VERSION", to: "\"\(library_version)\""), + .define("LIBRARY_NAME", to: "\"flutter-fire-rc\""), + ] + ), + ] +) diff --git a/packages/firebase_remote_config/firebase_remote_config/ios/Classes/FLTFirebaseRemoteConfigPlugin.m b/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigPlugin.m similarity index 98% rename from packages/firebase_remote_config/firebase_remote_config/ios/Classes/FLTFirebaseRemoteConfigPlugin.m rename to packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigPlugin.m index f7dbc585aeb3..35e94b838afe 100644 --- a/packages/firebase_remote_config/firebase_remote_config/ios/Classes/FLTFirebaseRemoteConfigPlugin.m +++ b/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigPlugin.m @@ -3,7 +3,11 @@ // found in the LICENSE file. @import FirebaseRemoteConfig; +#if __has_include() #import +#else +#import +#endif #import "FLTFirebaseRemoteConfigPlugin.h" #import "FLTFirebaseRemoteConfigUtils.h" @@ -57,7 +61,7 @@ + (void)registerWithRegistrar:(NSObject *)registrar { SEL sel = NSSelectorFromString(@"registerLibrary:withVersion:"); if ([FIRApp respondsToSelector:sel]) { - [FIRApp performSelector:sel withObject:LIBRARY_NAME withObject:LIBRARY_VERSION]; + [FIRApp performSelector:sel withObject:@LIBRARY_NAME withObject:@LIBRARY_VERSION]; } } @@ -289,11 +293,11 @@ - (NSDictionary *_Nonnull)configPropertiesForInstance:(FIRRemoteConfig *)remoteC } - (NSString *_Nonnull)firebaseLibraryName { - return LIBRARY_NAME; + return @LIBRARY_NAME; } - (NSString *_Nonnull)firebaseLibraryVersion { - return LIBRARY_VERSION; + return @LIBRARY_VERSION; } - (NSString *_Nonnull)flutterChannelName { diff --git a/packages/firebase_remote_config/firebase_remote_config/ios/Classes/FLTFirebaseRemoteConfigUtils.m b/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigUtils.m similarity index 100% rename from packages/firebase_remote_config/firebase_remote_config/ios/Classes/FLTFirebaseRemoteConfigUtils.m rename to packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigUtils.m diff --git a/packages/firebase_remote_config/firebase_remote_config/ios/Assets/.gitkeep b/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/Resources/.gitkeep similarity index 100% rename from packages/firebase_remote_config/firebase_remote_config/ios/Assets/.gitkeep rename to packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/Resources/.gitkeep diff --git a/packages/firebase_remote_config/firebase_remote_config/ios/Classes/FLTFirebaseRemoteConfigPlugin.h b/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigPlugin.h similarity index 83% rename from packages/firebase_remote_config/firebase_remote_config/ios/Classes/FLTFirebaseRemoteConfigPlugin.h rename to packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigPlugin.h index d36f1afbb1df..373d9968ba84 100644 --- a/packages/firebase_remote_config/firebase_remote_config/ios/Classes/FLTFirebaseRemoteConfigPlugin.h +++ b/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigPlugin.h @@ -10,7 +10,12 @@ #endif #import + +#if __has_include() #import +#else +#import +#endif @interface FLTFirebaseRemoteConfigPlugin : FLTFirebasePlugin diff --git a/packages/firebase_remote_config/firebase_remote_config/ios/Classes/FLTFirebaseRemoteConfigUtils.h b/packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigUtils.h similarity index 100% rename from packages/firebase_remote_config/firebase_remote_config/ios/Classes/FLTFirebaseRemoteConfigUtils.h rename to packages/firebase_remote_config/firebase_remote_config/ios/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigUtils.h diff --git a/packages/firebase_remote_config/firebase_remote_config/ios/generated_firebase_sdk_version.txt b/packages/firebase_remote_config/firebase_remote_config/ios/generated_firebase_sdk_version.txt new file mode 100644 index 000000000000..72773deb895e --- /dev/null +++ b/packages/firebase_remote_config/firebase_remote_config/ios/generated_firebase_sdk_version.txt @@ -0,0 +1 @@ +11.4.0 diff --git a/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigPlugin.h b/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigPlugin.h deleted file mode 120000 index 05526e815d21..000000000000 --- a/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigPlugin.h +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/FLTFirebaseRemoteConfigPlugin.h \ No newline at end of file diff --git a/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigPlugin.m b/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigPlugin.m deleted file mode 120000 index 49d25bc2fc78..000000000000 --- a/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigPlugin.m +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/FLTFirebaseRemoteConfigPlugin.m \ No newline at end of file diff --git a/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigUtils.h b/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigUtils.h deleted file mode 120000 index 8d0f01de78c2..000000000000 --- a/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigUtils.h +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/FLTFirebaseRemoteConfigUtils.h \ No newline at end of file diff --git a/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigUtils.m b/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigUtils.m deleted file mode 120000 index 86538ce8c0a9..000000000000 --- a/packages/firebase_remote_config/firebase_remote_config/macos/Classes/FLTFirebaseRemoteConfigUtils.m +++ /dev/null @@ -1 +0,0 @@ -../../ios/Classes/FLTFirebaseRemoteConfigUtils.m \ No newline at end of file diff --git a/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config.podspec b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config.podspec index 5ce762ddd125..bd6848969f94 100644 --- a/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config.podspec +++ b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config.podspec @@ -43,8 +43,8 @@ Pod::Spec.new do |s| s.authors = 'The Chromium Authors' s.source = { :path => '.' } - s.source_files = 'Classes/**/*.{h,m}' - s.public_header_files = 'Classes/*.h' + s.source_files = 'firebase_remote_config/Sources/firebase_remote_config/**/*.{h,m}' + s.public_header_files = 'firebase_remote_config/Sources/firebase_remote_config/include/*.h' s.platform = :osx, '10.13' @@ -58,7 +58,7 @@ Pod::Spec.new do |s| s.static_framework = true s.pod_target_xcconfig = { - 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\@\\\"#{library_version}\\\" LIBRARY_NAME=\\@\\\"flutter-fire-rc\\\"", + 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\\"#{library_version}\\\" LIBRARY_NAME=\\\"flutter-fire-rc\\\"", 'DEFINES_MODULE' => 'YES' } end diff --git a/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Package.swift b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Package.swift new file mode 100644 index 000000000000..e5e96e1f46b5 --- /dev/null +++ b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Package.swift @@ -0,0 +1,122 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +// Copyright 2024, the Chromium project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import Foundation +import PackageDescription + +enum ConfigurationError: Error { + case fileNotFound(String) + case parsingError(String) + case invalidFormat(String) +} + +let remoteConfigDirectory = String(URL(string: #file)!.deletingLastPathComponent().absoluteString + .dropLast()) + +func loadFirebaseSDKVersion() throws -> String { + let firebaseCoreScriptPath = NSString.path(withComponents: [ + remoteConfigDirectory, + "..", + "..", + "ios", + "generated_firebase_sdk_version.txt", + ]) + do { + let version = try String(contentsOfFile: firebaseCoreScriptPath, encoding: .utf8) + .trimmingCharacters(in: .whitespacesAndNewlines) + return version + } catch { + throw ConfigurationError + .fileNotFound("Error loading or parsing generated_firebase_sdk_version.txt: \(error)") + } +} + +func loadPubspecVersions() throws -> (packageVersion: String, firebaseCoreVersion: String) { + let pubspecPath = NSString.path(withComponents: [ + remoteConfigDirectory, + "..", + "..", + "pubspec.yaml", + ]) + do { + let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8) + let lines = yamlString.split(separator: "\n") + + guard let packageVersionLine = lines.first(where: { $0.starts(with: "version:") }) else { + throw ConfigurationError.invalidFormat("No package version line found in pubspec.yaml") + } + var packageVersion = packageVersionLine.split(separator: ":")[1] + .trimmingCharacters(in: .whitespaces) + .replacingOccurrences(of: "+", with: "-") + packageVersion = packageVersion.replacingOccurrences(of: "^", with: "") + + guard let firebaseCoreVersionLine = lines.first(where: { $0.contains("firebase_core:") }) else { + throw ConfigurationError + .invalidFormat("No firebase_core dependency version line found in pubspec.yaml") + } + var firebaseCoreVersion = firebaseCoreVersionLine.split(separator: ":")[1] + .trimmingCharacters(in: .whitespaces) + firebaseCoreVersion = firebaseCoreVersion.replacingOccurrences(of: "^", with: "") + + return (packageVersion, firebaseCoreVersion) + } catch { + throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)") + } +} + +let library_version: String +let firebase_sdk_version_string: String +let firebase_core_version_string: String +let shared_spm_tag = "-firebase-core-swift" + +do { + library_version = try loadPubspecVersions().packageVersion + firebase_sdk_version_string = try loadFirebaseSDKVersion() + firebase_core_version_string = try loadPubspecVersions().firebaseCoreVersion +} catch { + fatalError("Failed to load configuration: \(error)") +} + +guard let firebase_sdk_version = Version(firebase_sdk_version_string) else { + fatalError("Invalid Firebase SDK version: \(firebase_sdk_version_string)") +} + +guard let shared_spm_version = Version("\(firebase_core_version_string)\(shared_spm_tag)") else { + fatalError("Invalid firebase_core version: \(firebase_core_version_string)\(shared_spm_tag)") +} + +let package = Package( + name: "firebase_remote_config", + platforms: [ + .macOS("10.15"), + ], + products: [ + .library(name: "firebase-remote-config", targets: ["firebase_remote_config"]), + ], + dependencies: [ + .package(url: "https://github.com/firebase/firebase-ios-sdk", from: firebase_sdk_version), + .package(url: "https://github.com/firebase/flutterfire", exact: shared_spm_version), + ], + targets: [ + .target( + name: "firebase_remote_config", + dependencies: [ + .product(name: "FirebaseRemoteConfig", package: "firebase-ios-sdk"), + // Wrapper dependency + .product(name: "firebase-core-shared", package: "flutterfire"), + ], + resources: [ + .process("Resources"), + ], + cSettings: [ + .headerSearchPath("include"), + .define("LIBRARY_VERSION", to: "\"\(library_version)\""), + .define("LIBRARY_NAME", to: "\"flutter-fire-rc\""), + ] + ), + ] +) diff --git a/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigPlugin.m b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigPlugin.m new file mode 120000 index 000000000000..34822edf39e9 --- /dev/null +++ b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigPlugin.m @@ -0,0 +1 @@ +../../../../ios/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigPlugin.m \ No newline at end of file diff --git a/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigUtils.m b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigUtils.m new file mode 120000 index 000000000000..0153ec17ac71 --- /dev/null +++ b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigUtils.m @@ -0,0 +1 @@ +../../../../ios/firebase_remote_config/Sources/firebase_remote_config/FLTFirebaseRemoteConfigUtils.m \ No newline at end of file diff --git a/packages/firebase_remote_config/firebase_remote_config/macos/Assets/.gitkeep b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/Resources/.gitkeep similarity index 100% rename from packages/firebase_remote_config/firebase_remote_config/macos/Assets/.gitkeep rename to packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/Resources/.gitkeep diff --git a/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigPlugin.h b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigPlugin.h new file mode 120000 index 000000000000..48fd0d6dd6a0 --- /dev/null +++ b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigPlugin.h @@ -0,0 +1 @@ +../../../../../ios/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigPlugin.h \ No newline at end of file diff --git a/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigUtils.h b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigUtils.h new file mode 120000 index 000000000000..953c4f4f73ba --- /dev/null +++ b/packages/firebase_remote_config/firebase_remote_config/macos/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigUtils.h @@ -0,0 +1 @@ +../../../../../ios/firebase_remote_config/Sources/firebase_remote_config/include/FLTFirebaseRemoteConfigUtils.h \ No newline at end of file