diff --git a/.github/workflows/all_plugins.yaml b/.github/workflows/all_plugins.yaml
index 28baf054b0cc..74dd60a6088c 100644
--- a/.github/workflows/all_plugins.yaml
+++ b/.github/workflows/all_plugins.yaml
@@ -126,7 +126,7 @@ jobs:
runs-on: macos-latest
timeout-minutes: 30
env:
- FLUTTER_DEPENDENCIES: "cloud_firestore firebase_remote_config cloud_functions firebase_database firebase_auth firebase_storage firebase_analytics firebase_messaging firebase_app_check firebase_in_app_messaging firebase_performance firebase_dynamic_links firebase_crashlytics firebase_ml_model_downloader"
+ FLUTTER_DEPENDENCIES: "cloud_firestore firebase_remote_config cloud_functions firebase_database firebase_auth firebase_storage firebase_analytics firebase_messaging firebase_app_check firebase_in_app_messaging firebase_performance firebase_dynamic_links firebase_crashlytics firebase_ml_model_downloader firebase_app_installations"
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
- uses: subosito/flutter-action@2783a3f08e1baf891508463f8c6653c258246225
@@ -176,7 +176,7 @@ jobs:
# check-license-header)
- run: go install github.com/google/addlicense@latest
- name: Install Dart
- uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
+ uses: dart-lang/setup-dart@e630b99d28a3b71860378cafdc2a067c71107f94
- name: Install Melos
uses: bluefireteam/melos-action@c7dcb921b23cc520cace360b95d02b37bf09cdaa
with:
diff --git a/.github/workflows/android.yaml b/.github/workflows/android.yaml
index 29197ef085f7..500e4f6aade3 100644
--- a/.github/workflows/android.yaml
+++ b/.github/workflows/android.yaml
@@ -39,7 +39,7 @@ jobs:
name: Install Node.js 20
with:
node-version: '20'
- - uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018
+ - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
with:
distribution: 'temurin'
java-version: '17'
diff --git a/.github/workflows/e2e_tests_fdc.yaml b/.github/workflows/e2e_tests_fdc.yaml
index 75da448493dd..004886caacf9 100644
--- a/.github/workflows/e2e_tests_fdc.yaml
+++ b/.github/workflows/e2e_tests_fdc.yaml
@@ -33,7 +33,7 @@ jobs:
name: Install Node.js 20
with:
node-version: '20'
- - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9
+ - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
with:
distribution: 'temurin'
java-version: '17'
@@ -100,7 +100,7 @@ jobs:
name: Install Node.js 20
with:
node-version: '20'
- - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9
+ - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
with:
distribution: 'temurin'
java-version: '17'
@@ -180,7 +180,7 @@ jobs:
name: Install Node.js 20
with:
node-version: '20'
- - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9
+ - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
with:
distribution: 'temurin'
java-version: '17'
diff --git a/.github/workflows/ios.yaml b/.github/workflows/ios.yaml
index ccfeaa8a444d..5189e455d17b 100644
--- a/.github/workflows/ios.yaml
+++ b/.github/workflows/ios.yaml
@@ -39,7 +39,7 @@ jobs:
name: Install Node.js 20
with:
node-version: '20'
- - uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018
+ - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
with:
distribution: 'temurin'
java-version: '17'
@@ -103,7 +103,7 @@ jobs:
ccache -s
- name: Start Firebase Emulator
run: sudo chown -R 501:20 "/Users/runner/.npm" && cd ./.github/workflows/scripts && ./start-firebase-emulator.sh
- - uses: futureware-tech/simulator-action@48e51da14445b3eedca643bba4b78d9d8332ff31
+ - uses: futureware-tech/simulator-action@bde6805eedaeaba7775a9959970edc7d8bf10c4d
id: simulator
with:
# List of available simulators: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md#installed-simulators
diff --git a/.github/workflows/macos.yaml b/.github/workflows/macos.yaml
index ce1dfe409a69..6aa77aa622c7 100644
--- a/.github/workflows/macos.yaml
+++ b/.github/workflows/macos.yaml
@@ -39,7 +39,7 @@ jobs:
name: Install Node.js 20
with:
node-version: '20'
- - uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018
+ - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
with:
distribution: 'temurin'
java-version: '17'
diff --git a/.github/workflows/scripts/functions/package-lock.json b/.github/workflows/scripts/functions/package-lock.json
index 20c163449143..7b93503efa03 100644
--- a/.github/workflows/scripts/functions/package-lock.json
+++ b/.github/workflows/scripts/functions/package-lock.json
@@ -630,20 +630,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
- "node_modules/body-parser/node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
- "dependencies": {
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -782,9 +768,9 @@
}
},
"node_modules/cookie": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
- "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
"engines": {
"node": ">= 0.6"
}
@@ -1075,36 +1061,36 @@
}
},
"node_modules/express": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz",
- "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.20.3",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.6.0",
+ "cookie": "0.7.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "1.2.0",
+ "finalhandler": "1.3.1",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"merge-descriptors": "1.0.3",
"methods": "~1.1.2",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "path-to-regexp": "0.1.10",
+ "path-to-regexp": "0.1.12",
"proxy-addr": "~2.0.7",
- "qs": "6.11.0",
+ "qs": "6.13.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.19.0",
- "serve-static": "1.16.0",
+ "serve-static": "1.16.2",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"type-is": "~1.6.18",
@@ -1113,6 +1099,10 @@
},
"engines": {
"node": ">= 0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/express/node_modules/debug": {
@@ -1194,12 +1184,12 @@
}
},
"node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
"dependencies": {
"debug": "2.6.9",
- "encodeurl": "~1.0.2",
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
@@ -1218,6 +1208,14 @@
"ms": "2.0.0"
}
},
+ "node_modules/finalhandler/node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/finalhandler/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -2173,9 +2171,9 @@
}
},
"node_modules/path-to-regexp": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
- "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w=="
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
},
"node_modules/prelude-ls": {
"version": "1.1.2",
@@ -2267,11 +2265,11 @@
"integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
},
"node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
"dependencies": {
- "side-channel": "^1.0.4"
+ "side-channel": "^1.0.6"
},
"engines": {
"node": ">=0.6"
@@ -2490,69 +2488,25 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/serve-static": {
- "version": "1.16.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz",
- "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==",
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
"dependencies": {
- "encodeurl": "~1.0.2",
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.18.0"
+ "send": "0.19.0"
},
"engines": {
"node": ">= 0.8.0"
}
},
- "node_modules/serve-static/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/serve-static/node_modules/debug/node_modules/ms": {
+ "node_modules/serve-static/node_modules/encodeurl": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/serve-static/node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/serve-static/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/serve-static/node_modules/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
"engines": {
- "node": ">= 0.8.0"
+ "node": ">= 0.8"
}
},
"node_modules/set-function-length": {
@@ -3504,14 +3458,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
- "requires": {
- "side-channel": "^1.0.6"
- }
}
}
},
@@ -3620,9 +3566,9 @@
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
},
"cookie": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
- "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w=="
},
"cookie-signature": {
"version": "1.0.6",
@@ -3827,36 +3773,36 @@
"optional": true
},
"express": {
- "version": "4.20.0",
- "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz",
- "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
"requires": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.20.3",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.6.0",
+ "cookie": "0.7.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "1.2.0",
+ "finalhandler": "1.3.1",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"merge-descriptors": "1.0.3",
"methods": "~1.1.2",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "path-to-regexp": "0.1.10",
+ "path-to-regexp": "0.1.12",
"proxy-addr": "~2.0.7",
- "qs": "6.11.0",
+ "qs": "6.13.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.19.0",
- "serve-static": "1.16.0",
+ "serve-static": "1.16.2",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"type-is": "~1.6.18",
@@ -3926,12 +3872,12 @@
}
},
"finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
"requires": {
"debug": "2.6.9",
- "encodeurl": "~1.0.2",
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
@@ -3947,6 +3893,11 @@
"ms": "2.0.0"
}
},
+ "encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="
+ },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -4676,9 +4627,9 @@
"optional": true
},
"path-to-regexp": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
- "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w=="
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
},
"prelude-ls": {
"version": "1.1.2",
@@ -4747,11 +4698,11 @@
"integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ=="
},
"qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
"requires": {
- "side-channel": "^1.0.4"
+ "side-channel": "^1.0.6"
}
},
"range-parser": {
@@ -4922,60 +4873,20 @@
}
},
"serve-static": {
- "version": "1.16.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz",
- "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==",
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
"requires": {
- "encodeurl": "~1.0.2",
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.18.0"
+ "send": "0.19.0"
},
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- },
- "dependencies": {
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- }
- }
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "requires": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- }
+ "encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="
}
}
},
diff --git a/.github/workflows/web.yaml b/.github/workflows/web.yaml
index 5215b33435bf..bca536b1eef9 100644
--- a/.github/workflows/web.yaml
+++ b/.github/workflows/web.yaml
@@ -39,7 +39,7 @@ jobs:
name: Install Node.js 20
with:
node-version: '20'
- - uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018
+ - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
with:
distribution: 'temurin'
java-version: '17'
@@ -91,7 +91,7 @@ jobs:
name: Install Node.js 20
with:
node-version: '20'
- - uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018
+ - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
with:
distribution: 'temurin'
java-version: '17'
@@ -148,7 +148,7 @@ jobs:
name: Install Node.js 20
with:
node-version: '20'
- - uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018
+ - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
with:
distribution: 'temurin'
java-version: '17'
diff --git a/.github/workflows/windows.yaml b/.github/workflows/windows.yaml
index 213783e1c98c..54446a8720b5 100644
--- a/.github/workflows/windows.yaml
+++ b/.github/workflows/windows.yaml
@@ -30,7 +30,7 @@ jobs:
timeout-minutes: 45
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
- - uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018
+ - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
with:
distribution: 'temurin'
java-version: '17'
@@ -62,7 +62,7 @@ jobs:
timeout-minutes: 45
steps:
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
- - uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018
+ - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
with:
distribution: 'temurin'
java-version: '17'
diff --git a/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/AppFrameworkInfo.plist b/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/AppFrameworkInfo.plist
index 9625e105df39..7c5696400627 100644
--- a/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/AppFrameworkInfo.plist
+++ b/packages/firebase_app_installations/firebase_app_installations/example/ios/Flutter/AppFrameworkInfo.plist
@@ -21,6 +21,6 @@
CFBundleVersion
1.0
MinimumOSVersion
- 11.0
+ 12.0
diff --git a/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/project.pbxproj b/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/project.pbxproj
index 2ae71046a26a..cf403bdca323 100644
--- a/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/project.pbxproj
@@ -11,6 +11,7 @@
25D8824F2757C5A50032AD7D /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 25D8824E2757C5A40032AD7D /* GoogleService-Info.plist */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
+ 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; };
8D621D9C106A840747442A27 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = FA49080A66BCD405EE1DF534 /* GoogleService-Info.plist */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
@@ -58,6 +59,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */,
D31746244E2F2FE1872744CA /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -144,13 +146,15 @@
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- ECA47BD16D6FC415D9110B06 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = Runner;
+ packageProductDependencies = (
+ 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
+ );
productName = Runner;
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
productType = "com.apple.product-type.application";
@@ -161,7 +165,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 1300;
+ LastUpgradeCheck = 1510;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
@@ -179,6 +183,9 @@
Base,
);
mainGroup = 97C146E51CF9000F007C117D;
+ packageReferences = (
+ 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */,
+ );
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
projectDirPath = "";
projectRoot = "";
@@ -207,10 +214,12 @@
/* Begin PBXShellScriptBuildPhase section */
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
+ alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
+ "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
);
name = "Thin Binary";
outputPaths = (
@@ -243,6 +252,7 @@
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
+ alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
@@ -255,23 +265,6 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
- ECA47BD16D6FC415D9110B06 /* [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 */
@@ -557,6 +550,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 = 97C146E61CF9000F007C117D /* Project object */;
}
diff --git a/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index c87d15a33520..e598ba7945d8 100644
--- a/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/packages/firebase_app_installations/firebase_app_installations/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -1,10 +1,28 @@
+
+
+
+
+
+
+
+
+
+
CADisableMinimumFrameDurationOnPhone
+ UIApplicationSupportsIndirectInputEvents
+
diff --git a/packages/firebase_app_installations/firebase_app_installations/ios/Classes/FirebaseInstallationsPlugin.h b/packages/firebase_app_installations/firebase_app_installations/ios/Classes/FirebaseInstallationsPlugin.h
deleted file mode 100644
index a907f47bee53..000000000000
--- a/packages/firebase_app_installations/firebase_app_installations/ios/Classes/FirebaseInstallationsPlugin.h
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import
-
-#if TARGET_OS_OSX
-#import
-#else
-#import
-#endif
-
-#import
-
-@interface FirebaseInstallationsPlugin : FLTFirebasePlugin
-@end
diff --git a/packages/firebase_app_installations/firebase_app_installations/ios/Classes/FirebaseInstallationsPlugin.m b/packages/firebase_app_installations/firebase_app_installations/ios/Classes/FirebaseInstallationsPlugin.m
deleted file mode 100644
index 890ac838c38c..000000000000
--- a/packages/firebase_app_installations/firebase_app_installations/ios/Classes/FirebaseInstallationsPlugin.m
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2021 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "FirebaseInstallationsPlugin.h"
-#if __has_include()
-#import
-#else
-// Support project import fallback if the generated compatibility header
-// is not copied when this plugin is created as a library.
-// https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816
-#import "firebase_app_installations-Swift.h"
-#endif
-
-@implementation FirebaseInstallationsPlugin
-+ (void)registerWithRegistrar:(NSObject*)registrar {
- [FirebaseInstallationsPluginSwift registerWithRegistrar:registrar];
-}
-
-- (void)didReinitializeFirebaseCore:(void (^_Nonnull)(void))completion {
- completion();
-}
-
-- (NSString* _Nonnull)firebaseLibraryName {
- return LIBRARY_NAME;
-}
-
-- (NSString* _Nonnull)firebaseLibraryVersion {
- return LIBRARY_VERSION;
-}
-
-- (NSString* _Nonnull)flutterChannelName {
- return @"plugins.flutter.io/firebase_app_installations";
-}
-
-- (NSDictionary* _Nonnull)pluginConstantsForFIRApp:(FIRApp* _Nonnull)firebaseApp {
- return @{};
-}
-
-@end
diff --git a/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations.podspec b/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations.podspec
index fa2e296f153d..bcd20422338c 100644
--- a/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations.podspec
+++ b/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations.podspec
@@ -24,8 +24,7 @@ Pod::Spec.new do |s|
s.license = { :file => '../LICENSE' }
s.authors = 'The Chromium Authors'
s.source = { :path => '.' }
- s.source_files = 'Classes/**/*'
- s.public_header_files = 'Classes/**/*.h'
+ s.source_files = 'firebase_app_installations/Sources/**/*.swift'
s.ios.deployment_target = '13.0'
@@ -37,7 +36,6 @@ Pod::Spec.new do |s|
s.static_framework = true
s.pod_target_xcconfig = {
- 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\@\\\"#{library_version}\\\" LIBRARY_NAME=\\@\\\"flutter-fire-installations\\\"",
'DEFINES_MODULE' => 'YES'
}
end
diff --git a/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Package.swift b/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Package.swift
new file mode 100644
index 000000000000..e3a7b723dd7d
--- /dev/null
+++ b/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Package.swift
@@ -0,0 +1,106 @@
+// 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 appInstallationsDirectory = String(URL(string: #file)!.deletingLastPathComponent()
+ .absoluteString
+ .dropLast())
+
+func loadFirebaseSDKVersion() throws -> String {
+ let firebaseCoreScriptPath = NSString.path(withComponents: [
+ appInstallationsDirectory,
+ "..",
+ "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 loadPubspecVersion() throws -> String {
+ let pubspecPath = NSString.path(withComponents: [
+ appInstallationsDirectory,
+ "..",
+ "..",
+ "pubspec.yaml",
+ ])
+ do {
+ let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8)
+ let lines = yamlString.split(separator: "\n")
+
+ 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 firebaseCoreVersion
+ } catch {
+ throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)")
+ }
+}
+
+let firebase_sdk_version_string: String
+let firebase_core_version_string: String
+let shared_spm_tag = "-firebase-core-swift"
+
+do {
+ firebase_sdk_version_string = try loadFirebaseSDKVersion()
+ firebase_core_version_string = try loadPubspecVersion()
+} 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_app_installations",
+ platforms: [
+ .iOS("13.0"),
+ ],
+ products: [
+ .library(name: "firebase-app-installations", targets: ["firebase_app_installations"]),
+ ],
+ 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_app_installations",
+ dependencies: [
+ .product(name: "FirebaseInstallations", package: "firebase-ios-sdk"),
+ // Wrapper dependency
+ .product(name: "firebase-core-shared", package: "flutterfire"),
+ ],
+ resources: [
+ .process("Resources"),
+ ]
+ ),
+ ]
+)
diff --git a/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Sources/firebase_app_installations/Constants.swift b/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Sources/firebase_app_installations/Constants.swift
new file mode 100644
index 000000000000..da6137c5ce5b
--- /dev/null
+++ b/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Sources/firebase_app_installations/Constants.swift
@@ -0,0 +1,6 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Auto-generated file. Do not edit.
+public let versionNumber = "0.3.1+7"
diff --git a/packages/firebase_app_installations/firebase_app_installations/ios/Classes/FirebaseInstallationsPlugin.swift b/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Sources/firebase_app_installations/FirebaseInstallationsPlugin.swift
similarity index 90%
rename from packages/firebase_app_installations/firebase_app_installations/ios/Classes/FirebaseInstallationsPlugin.swift
rename to packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Sources/firebase_app_installations/FirebaseInstallationsPlugin.swift
index 634fdb35867d..fb9ed2a06894 100644
--- a/packages/firebase_app_installations/firebase_app_installations/ios/Classes/FirebaseInstallationsPlugin.swift
+++ b/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Sources/firebase_app_installations/FirebaseInstallationsPlugin.swift
@@ -8,12 +8,16 @@
import Flutter
#endif
-import firebase_core
+#if canImport(firebase_core)
+ import firebase_core
+#else
+ import firebase_core_shared
+#endif
import FirebaseInstallations
let kFLTFirebaseInstallationsChannelName = "plugins.flutter.io/firebase_app_installations"
-public class FirebaseInstallationsPluginSwift: FLTFirebasePlugin, FlutterPlugin {
+public class FirebaseInstallationsPlugin: NSObject, FLTFirebasePluginProtocol, FlutterPlugin {
private var eventSink: FlutterEventSink?
private var messenger: FlutterBinaryMessenger
private var streamHandler = [String: IdChangedStreamHandler?]()
@@ -35,10 +39,31 @@ public class FirebaseInstallationsPluginSwift: FLTFirebasePlugin, FlutterPlugin
name: kFLTFirebaseInstallationsChannelName,
binaryMessenger: binaryMessenger
)
- let instance = FirebaseInstallationsPluginSwift(messenger: binaryMessenger)
+ let instance = FirebaseInstallationsPlugin(messenger: binaryMessenger)
+ FLTFirebasePluginRegistry.sharedInstance().register(instance)
registrar.addMethodCallDelegate(instance, channel: channel)
}
+ public func firebaseLibraryVersion() -> String {
+ versionNumber
+ }
+
+ public func didReinitializeFirebaseCore(_ completion: @escaping () -> Void) {
+ completion()
+ }
+
+ public func pluginConstants(for firebaseApp: FirebaseApp) -> [AnyHashable: Any] {
+ [:]
+ }
+
+ @objc public func firebaseLibraryName() -> String {
+ "flutter-fire-installations"
+ }
+
+ @objc public func flutterChannelName() -> String {
+ kFLTFirebaseInstallationsChannelName
+ }
+
/// Gets Installations instance for a Firebase App.
/// - Returns: a Firebase Installations instance for the passed app from Dart
private func getInstallations(appName: String) -> Installations {
diff --git a/packages/firebase_app_installations/firebase_app_installations/ios/Classes/IdChangedStreamHandler.swift b/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Sources/firebase_app_installations/IdChangedStreamHandler.swift
similarity index 100%
rename from packages/firebase_app_installations/firebase_app_installations/ios/Classes/IdChangedStreamHandler.swift
rename to packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Sources/firebase_app_installations/IdChangedStreamHandler.swift
diff --git a/packages/firebase_app_installations/firebase_app_installations/ios/Assets/.gitkeep b/packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Sources/firebase_app_installations/Resources/.gitkeep
similarity index 100%
rename from packages/firebase_app_installations/firebase_app_installations/ios/Assets/.gitkeep
rename to packages/firebase_app_installations/firebase_app_installations/ios/firebase_app_installations/Sources/firebase_app_installations/Resources/.gitkeep
diff --git a/packages/firebase_app_installations/firebase_app_installations/ios/generated_firebase_sdk_version.txt b/packages/firebase_app_installations/firebase_app_installations/ios/generated_firebase_sdk_version.txt
new file mode 100644
index 000000000000..72773deb895e
--- /dev/null
+++ b/packages/firebase_app_installations/firebase_app_installations/ios/generated_firebase_sdk_version.txt
@@ -0,0 +1 @@
+11.4.0
diff --git a/packages/firebase_app_installations/firebase_app_installations/macos/Classes/FirebaseInstallationsPlugin.h b/packages/firebase_app_installations/firebase_app_installations/macos/Classes/FirebaseInstallationsPlugin.h
deleted file mode 120000
index cf1e960c6ebf..000000000000
--- a/packages/firebase_app_installations/firebase_app_installations/macos/Classes/FirebaseInstallationsPlugin.h
+++ /dev/null
@@ -1 +0,0 @@
-../../ios/Classes/FirebaseInstallationsPlugin.h
\ No newline at end of file
diff --git a/packages/firebase_app_installations/firebase_app_installations/macos/Classes/FirebaseInstallationsPlugin.m b/packages/firebase_app_installations/firebase_app_installations/macos/Classes/FirebaseInstallationsPlugin.m
deleted file mode 120000
index f671f2938a28..000000000000
--- a/packages/firebase_app_installations/firebase_app_installations/macos/Classes/FirebaseInstallationsPlugin.m
+++ /dev/null
@@ -1 +0,0 @@
-../../ios/Classes/FirebaseInstallationsPlugin.m
\ No newline at end of file
diff --git a/packages/firebase_app_installations/firebase_app_installations/macos/Classes/FirebaseInstallationsPlugin.swift b/packages/firebase_app_installations/firebase_app_installations/macos/Classes/FirebaseInstallationsPlugin.swift
deleted file mode 120000
index c65783793f21..000000000000
--- a/packages/firebase_app_installations/firebase_app_installations/macos/Classes/FirebaseInstallationsPlugin.swift
+++ /dev/null
@@ -1 +0,0 @@
-../../ios/Classes/FirebaseInstallationsPlugin.swift
\ No newline at end of file
diff --git a/packages/firebase_app_installations/firebase_app_installations/macos/Classes/IdChangedStreamHandler.swift b/packages/firebase_app_installations/firebase_app_installations/macos/Classes/IdChangedStreamHandler.swift
deleted file mode 120000
index b9d22007e609..000000000000
--- a/packages/firebase_app_installations/firebase_app_installations/macos/Classes/IdChangedStreamHandler.swift
+++ /dev/null
@@ -1 +0,0 @@
-../../ios/Classes/IdChangedStreamHandler.swift
\ No newline at end of file
diff --git a/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations.podspec b/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations.podspec
index d812ad74f765..cd53d3d94af2 100644
--- a/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations.podspec
+++ b/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations.podspec
@@ -42,7 +42,7 @@ Pod::Spec.new do |s|
s.license = { :file => '../LICENSE' }
s.authors = 'The Chromium Authors'
s.source = { :path => '.' }
- s.source_files = 'Classes/**/*'
+ s.source_files = 'firebase_app_installations/Sources/**/*.swift'
s.platform = :osx, '10.13'
@@ -56,7 +56,6 @@ Pod::Spec.new do |s|
s.static_framework = true
s.pod_target_xcconfig = {
- 'GCC_PREPROCESSOR_DEFINITIONS' => "LIBRARY_VERSION=\\@\\\"#{library_version}\\\" LIBRARY_NAME=\\@\\\"flutter-fire-installations\\\"",
'DEFINES_MODULE' => 'YES'
}
end
diff --git a/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Package.swift b/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Package.swift
new file mode 100644
index 000000000000..751edd05f9c4
--- /dev/null
+++ b/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Package.swift
@@ -0,0 +1,108 @@
+// 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 appInstallationsDirectory = String(URL(string: #file)!.deletingLastPathComponent()
+ .absoluteString
+ .dropLast())
+
+func loadFirebaseSDKVersion() throws -> String {
+ let firebaseCoreScriptPath = NSString.path(withComponents: [
+ appInstallationsDirectory,
+ "..",
+ "..",
+ "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 loadPubspecVersion() throws -> String {
+ let pubspecPath = NSString.path(withComponents: [
+ appInstallationsDirectory,
+ "..",
+ "..",
+ "pubspec.yaml",
+ ])
+ do {
+ let yamlString = try String(contentsOfFile: pubspecPath, encoding: .utf8)
+ let lines = yamlString.split(separator: "\n")
+
+ 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 firebaseCoreVersion
+ } catch {
+ throw ConfigurationError.fileNotFound("Error loading or parsing pubspec.yaml: \(error)")
+ }
+}
+
+let firebase_sdk_version_string: String
+let firebase_core_version_string: String
+let shared_spm_tag = "-firebase-core-swift"
+
+do {
+ firebase_sdk_version_string = try loadFirebaseSDKVersion()
+ firebase_core_version_string = try loadPubspecVersion()
+} 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_app_installations",
+ platforms: [
+ .macOS("10.15"),
+ ],
+ products: [
+ .library(name: "firebase-app-installations", targets: ["firebase_app_installations"]),
+ ],
+ 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_app_installations",
+ dependencies: [
+ .product(name: "FirebaseInstallations", package: "firebase-ios-sdk"),
+ // Wrapper dependency
+ .product(name: "firebase-core-shared", package: "flutterfire"),
+ ],
+ resources: [
+ .process("Resources"),
+ ]
+ ),
+ ]
+)
diff --git a/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Sources/firebase_app_installations/Constants.swift b/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Sources/firebase_app_installations/Constants.swift
new file mode 120000
index 000000000000..4f9d365c9242
--- /dev/null
+++ b/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Sources/firebase_app_installations/Constants.swift
@@ -0,0 +1 @@
+../../../../ios/firebase_app_installations/Sources/firebase_app_installations/Constants.swift
\ No newline at end of file
diff --git a/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Sources/firebase_app_installations/FirebaseInstallationsPlugin.swift b/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Sources/firebase_app_installations/FirebaseInstallationsPlugin.swift
new file mode 120000
index 000000000000..9a69a302dee5
--- /dev/null
+++ b/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Sources/firebase_app_installations/FirebaseInstallationsPlugin.swift
@@ -0,0 +1 @@
+../../../../ios/firebase_app_installations/Sources/firebase_app_installations/FirebaseInstallationsPlugin.swift
\ No newline at end of file
diff --git a/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Sources/firebase_app_installations/IdChangedStreamHandler.swift b/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Sources/firebase_app_installations/IdChangedStreamHandler.swift
new file mode 120000
index 000000000000..c8ad7d24c551
--- /dev/null
+++ b/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Sources/firebase_app_installations/IdChangedStreamHandler.swift
@@ -0,0 +1 @@
+../../../../ios/firebase_app_installations/Sources/firebase_app_installations/IdChangedStreamHandler.swift
\ No newline at end of file
diff --git a/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Sources/firebase_app_installations/Resources/.gitkeep b/packages/firebase_app_installations/firebase_app_installations/macos/firebase_app_installations/Sources/firebase_app_installations/Resources/.gitkeep
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml b/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml
index d134a26dbb33..1d288a44afc2 100644
--- a/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml
+++ b/packages/firebase_app_installations/firebase_app_installations/pubspec.yaml
@@ -1,4 +1,3 @@
-# FlutterFire_X naming due to package being take already on Pub.dev.
name: firebase_app_installations
description: A Flutter plugin allowing you to use Firebase Installations.
version: 0.3.1+7
diff --git a/scripts/generate_versions_spm.dart b/scripts/generate_versions_spm.dart
index 6dcc5161a4a2..c80ee981d233 100644
--- a/scripts/generate_versions_spm.dart
+++ b/scripts/generate_versions_spm.dart
@@ -131,7 +131,7 @@ void updateVersionsPackageSwift(String firebaseiOSVersion) {
void updateLibraryVersionPureSwiftPlugins() {
// Packages that require updating library versions
- const packages = ['firebase_ml_model_downloader'];
+ const packages = ['firebase_ml_model_downloader', 'firebase_app_installations'];
for (final package in packages) {
final pubspecPath = 'packages/$package/$package/pubspec.yaml';