diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 46ad558..9cf338f 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -2,8 +2,22 @@ name: Publish Release on: workflow_dispatch: + inputs: + logLevel: + description: 'Log level' + required: true + default: 'info' + type: choice + options: + - info + - debug + force: + description: 'Force re-creating the package if a pull request is already open' + required: false + type: boolean schedule: - - cron: '*/60 */2 * * *' # Every 2 hours + # Every day at 05:00 EST (10:00 UTC) + - cron: '0 10 * * *' jobs: build: @@ -13,7 +27,16 @@ jobs: uses: actions/checkout@v2 - name: Release - run: cd .scripts && sh ./package.sh + run: | + cd .scripts + + if [ "${LOG_LEVEL}" == "debug" ]; then + sh -x ./package.sh + else + sh ./package.sh + fi env: AUTHOR_TOKEN: ${{ secrets.GITHUB_TOKEN }} REVIEWER_TOKEN: ${{ secrets.AFRESHY_PAT }} + LOG_LEVEL: ${{ inputs.logLevel || 'info' }} + FORCE: ${{ inputs.force || false }} diff --git a/.scripts/package.sh b/.scripts/package.sh index b01f767..7125da8 100755 --- a/.scripts/package.sh +++ b/.scripts/package.sh @@ -9,6 +9,21 @@ latest_release_number () { head -1 || echo '0.0.0' } +branch_exists () { + # Check if the branch exists on the remote + git ls-remote --heads origin "$1" 2>/dev/null | grep -q "$1" || echo 0 +} + +pr_exists_and_open () { + # Check if the PR exists and is open on the remote + gh pr view $1 --json state | jq -r '.state' | grep -q "OPEN" || echo 0 +} + +is_pr_approved () { + # Check if the PR needs review + gh pr view $1 --json reviewDecision | jq -r '.reviewDecision' | grep -q "APPROVED" || echo 0 +} + xcframework_name () { # Filter out path and extension to get the framework name # Ex. xcframework_name "FirebaseFirestore/leveldb-library.xcframework" = "leveldb-library" @@ -269,16 +284,41 @@ login_reviewer() { } commit_changes() { - branch=$1 - git checkout -b $branch + local latest=$1 + local branch=$2 + local scratch=$3 + local repo=$4 + git add . - git commit -m"Updated Package.swift and sources for latest firebase sdks" + git commit -m "Updated Package.swift and sources for latest firebase sdks" git push -u origin $branch - gh pr create --fill - login_reviewer - gh pr review --approve + + local pr_exists_and_open=$(pr_exists_and_open $branch) + local release_notes=$(gh release view --repo $repo --json body | jq -r '.body') + + if [[ $pr_exists_and_open -eq 1 ]]; then + echo "Pull request $branch already exists." + else + echo "Creating pull request for $branch..." + gh pr create --title "Update to Firebase $latest" --body "$release_notes" --base main --head $branch + fi + + local is_pr_approved=$(is_pr_approved $branch) + + if [[ $is_pr_approved -eq 1 ]]; then + echo "Pull request $branch is already approved." + else + echo "Approving pull request $branch..." + login_reviewer + gh pr review --approve + fi + + echo "Merging pull request $branch..." login_default gh pr merge --squash + + echo "Creating release..." + gh release create --title "$latest" --notes "$release_notes" --target "$branch" $latest $scratch/dist/*.xcframework.zip } # Exit when any command fails @@ -304,52 +344,68 @@ if [[ $latest != $current || $debug ]]; then distribution="dist" sources="Sources" package="Package.swift" + branch="release/$latest" + + git fetch origin - # Generate files in a temporary directory - # Use subshell to return to original directory when finished with scratchwork - create_scratch - ( - cd $scratch - home=$OLDPWD - echo "Downloading latest release..." - gh release download --pattern 'Firebase.zip' --repo $firebase_repo - echo "Unzipping.." - unzip -q Firebase.zip - echo "Preparing xcframeworks for distribution..." - cd Firebase - rename_frameworks "_" - zip_frameworks - echo "Creating distribution files..." - prepare_files_for_distribution "../$distribution" - echo "Creating source files..." - generate_sources "../$sources" - # Create test package using local binaries and make sure it builds - generate_swift_package "../$package" "$home/package_template.swift" "../$distribution" $xcframeworks_repo $distribution - echo "Validating..." - (cd ..; swift package dump-package | read pac) - (cd ..; swift build) # TODO: create tests and replace this line with `(cd ..; swift test)` - # Create release package using remote binaries and make sure the Package.swift file is parseable - generate_swift_package "../$package" "$home/package_template.swift" "../$distribution" $xcframeworks_repo '' - echo "Validating..." - (cd ..; swift package dump-package | read pac) - ) - - echo "Moving files to repo..."; cd .. - # Remove any existing files - if [ -d $sources ]; then rm -rf "$sources"; fi - if [ -f $package ]; then rm -f "$package"; fi - # Move generated files into the repo directory - mv "$scratch/$sources" "$sources" - mv "$scratch/$package" "$package" + release_branch_exists=$(branch_exists $branch) + pr_exists_and_open=$(pr_exists_and_open $branch) + + if [[ $release_branch_exists -eq 1 ]]; then + echo "Branch $branch already exists." + git checkout $branch + else + echo "Creating branch $branch..." + git checkout -b $branch + fi + + if [[ $pr_exists_and_open -eq 0 || $FORCE ]]; then + # Generate files in a temporary directory + # Use subshell to return to original directory when finished with scratchwork + create_scratch + ( + cd $scratch + home=$OLDPWD + echo "Downloading latest release..." + gh release download --pattern 'Firebase.zip' --repo $firebase_repo + echo "Unzipping.." + unzip -q Firebase.zip + echo "Preparing xcframeworks for distribution..." + cd Firebase + rename_frameworks "_" + zip_frameworks + echo "Creating distribution files..." + prepare_files_for_distribution "../$distribution" + echo "Creating source files..." + generate_sources "../$sources" + # Create test package using local binaries and make sure it builds + generate_swift_package "../$package" "$home/package_template.swift" "../$distribution" $xcframeworks_repo $distribution + echo "Validating..." + (cd ..; swift package dump-package | read pac) + (cd ..; swift build) # TODO: create tests and replace this line with `(cd ..; swift test)` + # Create release package using remote binaries and make sure the Package.swift file is parseable + generate_swift_package "../$package" "$home/package_template.swift" "../$distribution" $xcframeworks_repo '' + echo "Validating..." + (cd ..; swift package dump-package | read pac) + ) + + echo "Moving files to repo..."; cd .. + # Remove any existing files + if [ -d $sources ]; then rm -rf "$sources"; fi + if [ -f $package ]; then rm -f "$package"; fi + # Move generated files into the repo directory + mv "$scratch/$sources" "$sources" + mv "$scratch/$package" "$package" + else + echo "Pull request $branch already exists and is open." + fi # Skips deploy if [[ $skip_release ]]; then echo "Done."; exit 0; fi # Deploy to repository echo "Merging changes to Github..." - commit_changes "release/$latest" - echo "Creating release draft" - echo "Release $latest" | gh release create --title "$latest" --target "release/$latest" $latest $scratch/dist/*.xcframework.zip + commit_changes "$latest" "$branch" "$scratch" "$firebase_repo" else echo "$current is up to date." fi diff --git a/Package.swift b/Package.swift index 95d6145..1b2fe67 100644 --- a/Package.swift +++ b/Package.swift @@ -322,6 +322,7 @@ let package = Package( "Firebase", "FirebaseAnalyticsTarget", .target(name: "_AppAuth", condition: .when(platforms: [.iOS])), + "_AppCheckCore", .target(name: "_GTMAppAuth", condition: .when(platforms: [.iOS])), "_GTMSessionFetcher", .target(name: "_GoogleSignIn", condition: .when(platforms: [.iOS])) @@ -330,253 +331,253 @@ let package = Package( ), .binaryTarget( name: "_AppAuth", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_AppAuth.xcframework.zip", - checksum: "d69f44d40a81ab097b351b56283e9993c7d4f89ca1a2b172142ce0d7c7224377" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_AppAuth.xcframework.zip", + checksum: "7a42328207843c202800039a5e1d6a2046f44504c83e9cf0203277f4ac395675" ), .binaryTarget( name: "_AppCheckCore", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_AppCheckCore.xcframework.zip", - checksum: "32a6082330442b0f321aa509d9b7274a97641cc41406793c3a382f18eb7c3c52" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_AppCheckCore.xcframework.zip", + checksum: "2d7b03f8368623bf4a720ab0d0ff5df9594369b93faecb1a0a6ce167a18203ce" ), .binaryTarget( name: "_FBLPromises", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FBLPromises.xcframework.zip", - checksum: "aeb0901ba9a890bbe2a0e093ec52e787c03080c51d579cef44f48708634a7ca4" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FBLPromises.xcframework.zip", + checksum: "c67b168e51e312c9308b51388d125fe474084d3cfe40b80d6a128058bb345cc6" ), .binaryTarget( name: "_FirebaseABTesting", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseABTesting.xcframework.zip", - checksum: "fed68b2abd6b95c896b17ac046f00c9ed227d0bf12c01762dc9c5814075e1bf5" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseABTesting.xcframework.zip", + checksum: "dd3067452d4d61a69bc167b5ead87ba476a898c3808b1d3c51e66331adf8e258" ), .binaryTarget( name: "_FirebaseAnalytics", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseAnalytics.xcframework.zip", - checksum: "715bebe8cda4253a45ffc0087bd3eae3bd2bb01a81dde5c602a9ba190111fd19" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseAnalytics.xcframework.zip", + checksum: "b5a696013efda39aba2bb116b78adff4d74c681c642dd673955a0d2b0a028d32" ), .binaryTarget( name: "_FirebaseAnalyticsOnDeviceConversion", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseAnalyticsOnDeviceConversion.xcframework.zip", - checksum: "0ac74734b98996b54845040dd0652450519c5d5772224ea4bc1ad800ae4eb056" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseAnalyticsOnDeviceConversion.xcframework.zip", + checksum: "489534f735b5ac0eafd87e682c337fc88190ba231253c602c93964ac4a1a9fe0" ), .binaryTarget( name: "_FirebaseAppCheck", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseAppCheck.xcframework.zip", - checksum: "d8b8a24e8a5e9e9cdf45ad0d4993e27e023234c8dc66e5e2a24f195617c59629" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseAppCheck.xcframework.zip", + checksum: "e946dc8c686bc7df85ed4c49999ac30f7fd5acde792c350b19d35099e824cf4c" ), .binaryTarget( name: "_FirebaseAppCheckInterop", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseAppCheckInterop.xcframework.zip", - checksum: "586af76c995f7c39375efe422f8c2b7b66dc582a3c0e9b653e687c13caf34438" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseAppCheckInterop.xcframework.zip", + checksum: "b3b9a4c34f8f79e2694855f3585de7f6273781ff1f60177524a4c3b768af773c" ), .binaryTarget( name: "_FirebaseAppDistribution", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseAppDistribution.xcframework.zip", - checksum: "05ca182f9f35b01b33e54d176cb5b57e3bde24ae04f601964d81d04fd1194086" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseAppDistribution.xcframework.zip", + checksum: "b428fc65eeb41041eea41cd532341f00e441cab5efe86e6669b27a3f8d1112b9" ), .binaryTarget( name: "_FirebaseAuth", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseAuth.xcframework.zip", - checksum: "b5ed3a1310877b7d8d0e7aa115b272176d87e834176b93425269341b40da2a50" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseAuth.xcframework.zip", + checksum: "449b8ca33c4853a751f6429b56ff93ec70fed7958e6eb0dcea08ea8abe101115" ), .binaryTarget( name: "_FirebaseAuthInterop", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseAuthInterop.xcframework.zip", - checksum: "10dcd2893a531d5496b7bb18d159ab048ede029eb292665e47bd601c77464f04" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseAuthInterop.xcframework.zip", + checksum: "4775a115bf2c1d562429760d438df409d06e567784f8914b23e9a0fa67dac998" ), .binaryTarget( name: "_FirebaseCore", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseCore.xcframework.zip", - checksum: "eeaefd532feb559f6c069f01b2640b679b7b52d2ac83ed945ff9466709e4950c" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseCore.xcframework.zip", + checksum: "5ded1e51245e831e36b58b7508e353f57a597dbf6abad209c4054aa66a65ae29" ), .binaryTarget( name: "_FirebaseCoreExtension", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseCoreExtension.xcframework.zip", - checksum: "757ef291eb0cbc419b10b44082c3eeb0ff20c0f498ea327bc7868b440e7be7e5" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseCoreExtension.xcframework.zip", + checksum: "0f38127595075e3e1e7ad53c23607241093fb79d8c1edc509be086e9b1ea8c9c" ), .binaryTarget( name: "_FirebaseCoreInternal", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseCoreInternal.xcframework.zip", - checksum: "426c0efaf6cf1e9d639c1365476305c4f8e7985f6a6488e24b2710b6ace8701b" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseCoreInternal.xcframework.zip", + checksum: "1f317bb429134a626cdfa56ea82dc59aa330ea4e49ffdd093198e9c27fc59288" ), .binaryTarget( name: "_FirebaseCrashlytics", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseCrashlytics.xcframework.zip", - checksum: "7c7a7aace1ee848801f013a1e60072b9e82764fc3fc99fc55f58023b5f48f5ee" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseCrashlytics.xcframework.zip", + checksum: "d4f840db9296573f3caa266e82df7c70efb7432c76f38a6c8c5aa8662eb1860a" ), .binaryTarget( name: "_FirebaseDatabase", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseDatabase.xcframework.zip", - checksum: "5988f72e64f3e1688a8474fdb4b5bbcc90bd47fe02e5e2b47b59f804a0918c70" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseDatabase.xcframework.zip", + checksum: "91d023d85a383e02023f53f5b2e8ed0781415036acdccd089ccbea44988af180" ), .binaryTarget( name: "_FirebaseDynamicLinks", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseDynamicLinks.xcframework.zip", - checksum: "cb76dbbb369de519594f9f2a3d795105d1e8dd25b5fe1262bf738a93f8b5ab94" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseDynamicLinks.xcframework.zip", + checksum: "663879e318207a08517b0fb53c2d2a43728bcf9537a78beba4870244454058bb" ), .binaryTarget( name: "_FirebaseFirestore", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseFirestore.xcframework.zip", - checksum: "cb4e1ab716b1355222c0167f579623ae011636e35e7e5b19540bf2e57a1327e3" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseFirestore.xcframework.zip", + checksum: "e4759f9d291f79fe03dfa19066fbaefb6b72d85b0c6fc6de5fc36fc689143b79" ), .binaryTarget( name: "_FirebaseFirestoreInternal", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseFirestoreInternal.xcframework.zip", - checksum: "ef9a23306fce740580fc971fb3286ce86c9ea9de26599410847bba0ceb856bd7" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseFirestoreInternal.xcframework.zip", + checksum: "fd168360a117a58ca8379eabd3dbe5ed156a88af98ac723a4b76ad21636d78bf" ), .binaryTarget( name: "_FirebaseFunctions", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseFunctions.xcframework.zip", - checksum: "d38cd00160be704634a03a1250d9a95ff5a9673ff15d877b82b216de594c4f63" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseFunctions.xcframework.zip", + checksum: "617bde2ac3575e1f351350cfc1c777afb01aac35941f239e8f7b64444cf23265" ), .binaryTarget( name: "_FirebaseInAppMessaging", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseInAppMessaging.xcframework.zip", - checksum: "1d71bcb85fbd459de9a70a9a824ad4b5af5934f2d9cf8275dcb408d6ac49b3e7" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseInAppMessaging.xcframework.zip", + checksum: "fc1c67e59057fa1512bd5e580f35e30177a2135457549df15f7b5bce4d9f0326" ), .binaryTarget( name: "_FirebaseInstallations", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseInstallations.xcframework.zip", - checksum: "1dc36a35c8ca1c1781a2d00d77b75cedefd4a695cf1de737ca0cea25fa8b457a" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseInstallations.xcframework.zip", + checksum: "548d5cf724659c8d242684876d45dc0aa11e5b9398513fca4e1993b861ade5ed" ), .binaryTarget( name: "_FirebaseMLModelDownloader", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseMLModelDownloader.xcframework.zip", - checksum: "7d15ba7b4e09b25dd2f7745f56df4be727862bfc6001126d6ded6816e9254485" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseMLModelDownloader.xcframework.zip", + checksum: "7292f0c15de8aa5c9c764b9b97121a0c3d7fa18b959c7998296bc60871af1d60" ), .binaryTarget( name: "_FirebaseMessaging", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseMessaging.xcframework.zip", - checksum: "cb6629d7f53df71bb450e5d1b3d0a880d9fd719013a162c4a5babd60d310447f" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseMessaging.xcframework.zip", + checksum: "237e81e3d69091cf57630223f96e0b3a43f05431859bc305fe2a72ac299c6aa0" ), .binaryTarget( name: "_FirebaseMessagingInterop", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseMessagingInterop.xcframework.zip", - checksum: "12e6f04fc9fdc1300b05bc604cf2c49bca13d1d7ec513732e8e0d3e895f64d83" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseMessagingInterop.xcframework.zip", + checksum: "a9a865c8428ef94f809e29862c5cbad17094470e037da21dd76fa7ff475b602e" ), .binaryTarget( name: "_FirebasePerformance", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebasePerformance.xcframework.zip", - checksum: "12bc3db0bc506c3ad5d404e5ea3fd0f590383e4e8ab6de25cb5eacc3164a29f4" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebasePerformance.xcframework.zip", + checksum: "072a559ddab70fa88ce23d448fedfdec0ba15a57a05da33052d5ded7c3a8668a" ), .binaryTarget( name: "_FirebaseRemoteConfig", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseRemoteConfig.xcframework.zip", - checksum: "4f34f309c04903825e11db14374e626f36342e48e0f4a8b5dd80552836402cb1" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseRemoteConfig.xcframework.zip", + checksum: "8fe6aa48883aaebe6ba2bac1d637ab6f316a42d181a66da62517788e7cfaa342" ), .binaryTarget( name: "_FirebaseRemoteConfigInterop", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseRemoteConfigInterop.xcframework.zip", - checksum: "55ec602fd3a2b307740f040dd441d68711ffb3cf9fa6f5573dbb5539c894c05c" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseRemoteConfigInterop.xcframework.zip", + checksum: "bab88db34206775cac9fe0ee729020e9bdda4d81189476662aeb18d6a09f9980" ), .binaryTarget( name: "_FirebaseSessions", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseSessions.xcframework.zip", - checksum: "83b3b2834a97461fafef8db334e1af8db2993335423feee33a0057e9be372e4d" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseSessions.xcframework.zip", + checksum: "d17d346dc5c9dbcb1e081f0ccb5cf6cf1e0cc1eed3a52766dfda1a57272a049e" ), .binaryTarget( name: "_FirebaseSharedSwift", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseSharedSwift.xcframework.zip", - checksum: "bd39c286e2b5e91b713412709b39ee3f5120e86c35921bbadbb6552147b36227" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseSharedSwift.xcframework.zip", + checksum: "2d994a341e9b8e02b89b10ee341e41f261beb441394ca5aa44bd2b0aa286c223" ), .binaryTarget( name: "_FirebaseStorage", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_FirebaseStorage.xcframework.zip", - checksum: "840cb8949e4c76469d30bad0c793c3d6c8b3f268fdf402e58f126872f41fd6dc" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_FirebaseStorage.xcframework.zip", + checksum: "138dfbba92bca379e88aa0eb360fef4d95b32f4d308a331091cbb9101f6641dd" ), .binaryTarget( name: "_GTMAppAuth", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_GTMAppAuth.xcframework.zip", - checksum: "f6168940d4384b09a0e95b4c2969ade7c7941316fd528504e94ec1e6b403c0e9" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_GTMAppAuth.xcframework.zip", + checksum: "9d36732a4898a14b3de162c3dd840efbcc87fd825cc8e7e2fdf3e90ec1b99025" ), .binaryTarget( name: "_GTMSessionFetcher", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_GTMSessionFetcher.xcframework.zip", - checksum: "3dc6bd4c19fc9b68f5cb1d5b5a7cb351902e37c29ab7f4668abec68c43d890a4" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_GTMSessionFetcher.xcframework.zip", + checksum: "4f593d5b99134889cd228172c4155f4a9c465553302553b01d72d169f6e44855" ), .binaryTarget( name: "_GoogleAppMeasurement", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_GoogleAppMeasurement.xcframework.zip", - checksum: "159d119fb0a98cbf2bf1fdd278eb114c56f854620d6d7d4a41e2feb2a0ce2a0c" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_GoogleAppMeasurement.xcframework.zip", + checksum: "2932aeebec31779caae8af2d3c028f3c84114293d0106859b97a2c4e90b5461d" ), .binaryTarget( name: "_GoogleAppMeasurementIdentitySupport", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_GoogleAppMeasurementIdentitySupport.xcframework.zip", - checksum: "cdfe13ad80fe11a15bc579d882cee4846be71c7647aba8b5eb7a497136a1955b" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_GoogleAppMeasurementIdentitySupport.xcframework.zip", + checksum: "ac82fc527409b8b33b3714d3c6a31ae6902fadc60f6eb212c39e74301e1ceeae" ), .binaryTarget( name: "_GoogleAppMeasurementOnDeviceConversion", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_GoogleAppMeasurementOnDeviceConversion.xcframework.zip", - checksum: "588890cbd5ce0b1aa08287e9e9844f24fc5c56289777886eb3b76a4da94ed52d" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_GoogleAppMeasurementOnDeviceConversion.xcframework.zip", + checksum: "0657ec053fbc70e83bb017f39dd87c8452426f2405fc59ad722e25c013b509e4" ), .binaryTarget( name: "_GoogleDataTransport", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_GoogleDataTransport.xcframework.zip", - checksum: "cf3606292509758d25c4fd5a0b7bc4b203380ccc6401094187cbd2ebe1ef6780" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_GoogleDataTransport.xcframework.zip", + checksum: "1cde7cbb573419cd77e4cd8fb13d297d145f2d7c16582983c54f51ef72a3362e" ), .binaryTarget( name: "_GoogleMobileAds", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_GoogleMobileAds.xcframework.zip", - checksum: "29cc347f4742d39706fa4f89660ee6c6695a4841f6792f0ae1b80f0bbb8a88b3" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_GoogleMobileAds.xcframework.zip", + checksum: "a90a75ce6df926fca1bb4cbe4457bc6a6ec09695a89e9716006829e69c6a4124" ), .binaryTarget( name: "_GoogleSignIn", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_GoogleSignIn.xcframework.zip", - checksum: "8239f2b33ba3d32a3ccbdd18e69bb79f49c0144af9d255ffe54613091aece596" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_GoogleSignIn.xcframework.zip", + checksum: "7f37a777abbccbd6dc41aba89f0754e10437e74550f010678eebb039bfbdfa7e" ), .binaryTarget( name: "_GoogleUtilities", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_GoogleUtilities.xcframework.zip", - checksum: "f0a635ad335629ee5f5fc896eabcab959a467c2160c4fb1a2a0502565dc3fa92" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_GoogleUtilities.xcframework.zip", + checksum: "8a9f6e9562bb8445f45b2c5a97a26d751d8af8b58188ec96c36076d6be05498d" ), .binaryTarget( name: "_Promises", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_Promises.xcframework.zip", - checksum: "f25c13e74b9c18c4b4b4d082d70e5d71d69981db9afacdaa4b759c62aa57db12" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_Promises.xcframework.zip", + checksum: "1ca3c68ffe83742e2e1fd18659787442fe898838bc59f3371d7e0f4e70018bd1" ), .binaryTarget( name: "_RecaptchaInterop", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_RecaptchaInterop.xcframework.zip", - checksum: "06f9939cc93a6c77ffeaa96181da9ffebcbaf054228f7f61c585436622d644ae" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_RecaptchaInterop.xcframework.zip", + checksum: "2234a03e1cf565cee7554bd27842a787d6f9aa28d0b8978785a09538781fd7f2" ), .binaryTarget( name: "_SwiftProtobuf", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_SwiftProtobuf.xcframework.zip", - checksum: "0a7f74f2011ed143f33d494cde67b30cc343d346d0463ed903cdd55c75eb2c76" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_SwiftProtobuf.xcframework.zip", + checksum: "0f2de40bddb88ef700e6ecd11b6c2ef170422569c18c8bcde50eaa8f770b2d2d" ), .binaryTarget( name: "_UserMessagingPlatform", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_UserMessagingPlatform.xcframework.zip", - checksum: "efb0329ee77e990e33fa84399f7c355be37f5593250f2608c14c3d316bdeb2e1" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_UserMessagingPlatform.xcframework.zip", + checksum: "47f06041bdb8c4de25ca98da7f42c5f10898e5a2a61e6f19788838c71d9c1ec4" ), .binaryTarget( name: "_absl", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_absl.xcframework.zip", - checksum: "69763b80c632f074c4adb46c9ce629b1e49a1b8a8a6baacacf166e6a62cbb9ac" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_absl.xcframework.zip", + checksum: "0698b7fb524b7be19d0ccbc74b67dc07db1fbc41a073abfacbb73c1af7ac026d" ), .binaryTarget( name: "_grpc", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_grpc.xcframework.zip", - checksum: "8520186e4251b413cadf394984811de443b6c8b7b7122062e7777197e77639ac" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_grpc.xcframework.zip", + checksum: "3c09fcf46ff83fa6d7ca63dfface5f208723b73c2c17a6a1f9c84a4e996a5a52" ), .binaryTarget( name: "_grpcpp", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_grpcpp.xcframework.zip", - checksum: "c40c966c2a2f9a57429ff521cba19c9bc7970764f921ee7761c71cac53466a2b" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_grpcpp.xcframework.zip", + checksum: "cf35d1589e7b33c809bb79afc066221342d91c2dca2b13504398fa8b79520732" ), .binaryTarget( name: "_leveldb", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_leveldb.xcframework.zip", - checksum: "809daaa6e2388dd28e995820e772e4ba23705ee2a29d1712985b6b1bf3e68642" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_leveldb.xcframework.zip", + checksum: "8d55c13a65bea4ea22bb5f0cc38c941f89a8453c96e89bdeb9343e7a9864558a" ), .binaryTarget( name: "_nanopb", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_nanopb.xcframework.zip", - checksum: "ba7079769222a5129f810b41b7ddde2a39bb35f1595e9c14e88891f5f5ceb4f2" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_nanopb.xcframework.zip", + checksum: "3139fac3c20d428080c778adef79b8e2ca2d63e18b5268e6b72ea7d4c23109d8" ), .binaryTarget( name: "_openssl_grpc", - url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.1.0/_openssl_grpc.xcframework.zip", - checksum: "2206c0a52cb9873d2528def2022a5ad9bd255959b35b3c551c39dbd65633e796" + url: "https://github.com/afresh-technologies/firebase-ios-sdk-xcframeworks/releases/download/11.2.0/_openssl_grpc.xcframework.zip", + checksum: "ef2664914dadd41fe00ffe933e6fb4ba2703f00dec501a7efc6fc46a6f175dff" ) ] )