Skip to content

Commit bc7fb54

Browse files
jonsimantovgoogle-labs-jules[bot]a-maurice
authored
Remove deprecated Google Mobile Ads (GMA) C++ SDK (#1768)
* Remove deprecated Google Mobile Ads (GMA) C++ SDK This commit removes the entire GMA C++ SDK from the Firebase C++ SDK, including all references to it across all platforms (iOS, Desktop, and Android). Changes include: - Deletion of the core `gma` directory and its contents. - Removal of GMA from CMakeLists.txt files. - Removal of GMA from Gradle build files. - Removal of GMA from iOS Podfiles. - Removal of GMA from integration tests and UI tests. - Removal of GMA from build scripts and CI workflows. - Updates to documentation (README.md, Doxyfile) to reflect the removal, while preserving release notes related to past GMA versions and adding a new note about its removal. * Refine: Silently skip GMA secrets in restore_secrets.py This commit removes the explicit print statement when skipping GMA-related encrypted files in `scripts/gha/restore_secrets.py`. The script will now silently ignore these files, aligning with the complete removal of the GMA SDK and avoiding unnecessary log output. * Ensure restore_secrets.py skips GMA paths This commit ensures that `scripts/gha/restore_secrets.py` correctly skips processing for any GMA-related encrypted files. The existing check `if api == "gma": continue` should prevent attempts to write decrypted secrets to the `gma/integration_test` directory, which no longer exists after the removal of the GMA SDK. This submission is to confirm the CI tests against this version of the script. * Fix: Strengthen GMA skip logic in restore_secrets.py This commit further refines `scripts/gha/restore_secrets.py` to prevent attempts to write to the deleted `gma/integration_test` directory. Changes include: - Initializing `dest_paths` as an empty list. - More careful construction of `dest_paths` based on whether `FLAGS.artifact` is set, ensuring that GMA paths are not inadvertently created. - Explicitly continuing the loop if no valid destination path is determined for a file, preventing unnecessary decryption or write attempts. - Adding redundant checks to ensure GMA paths are not processed before file write operations as a final safeguard. This should robustly address the `FileNotFoundError` previously observed in CI. * Fix: Remove sensitive logging from restore_secrets.py This commit removes print statements from `scripts/gha/restore_secrets.py` that were logging potentially sensitive file paths. This addresses security alerts raised by the GitHub Advanced Security bot regarding clear-text logging of sensitive information. * Refactor: Remove GMA secrets directory instead of adding skip logic This commit simplifies the removal of the GMA SDK by deleting the `scripts/gha-encrypted/gma` directory entirely. This is a cleaner solution than adding skip logic to `restore_secrets.py` and resolves the `FileNotFoundError` in the CI by removing the source of the problem. The `restore_secrets.py` script has been reverted to its original state. * Fix: Forcefully remove gma secrets directory This commit ensures the complete removal of the GMA SDK by forcefully deleting the `scripts/gha-encrypted/gma` directory. This is the root cause of the `FileNotFoundError` in the CI and is the cleanest solution. The `restore_secrets.py` script remains in its original state, as the problem is resolved by removing the gma secrets it was attempting to process. * Address feedback and update readmes * Remove the GMA source code --------- Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: a-maurice <amaurice@google.com>
1 parent 664b2a2 commit bc7fb54

File tree

170 files changed

+31
-24305
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

170 files changed

+31
-24305
lines changed

.github/workflows/integration_tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ on:
1717
required: true
1818
apis:
1919
description: 'CSV of apis to build and test'
20-
default: 'analytics,app_check,auth,database,dynamic_links,firestore,functions,gma,installations,messaging,remote_config,storage,ump'
20+
default: 'analytics,app_check,auth,database,dynamic_links,firestore,functions,installations,messaging,remote_config,storage,ump'
2121
required: true
2222
operating_systems:
2323
description: 'CSV of VMs to run on'
@@ -186,7 +186,7 @@ jobs:
186186
# list. Then we can use fromJson to define the field in the matrix for the tests job.
187187
if [[ "${{ github.event.schedule }}" == "0 9 * * *" ]]; then
188188
# at 1am PST/2am PDT. Running integration tests and generate test report for all testapps except firestore
189-
apis="analytics,app_check,auth,database,dynamic_links,functions,gma,installations,messaging,remote_config,storage,ump"
189+
apis="analytics,app_check,auth,database,dynamic_links,functions,installations,messaging,remote_config,storage,ump"
190190
echo "::warning ::Running main nightly tests"
191191
elif [[ "${{ github.event.schedule }}" == "0 10 * * *" || "${{ github.event.schedule }}" == "0 11 * * *" ]]; then
192192
# at 2am PST/3am PDT and 3am PST/4am PDT. Running integration tests for firestore and generate test report.

.github/workflows/update-dependencies.yml

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@ on:
88
updateiOS:
99
description: 'update iOS dependencies?'
1010
default: 1
11-
includeGMA:
12-
description: 'include GMA?'
13-
default: 0
1411
triggerTests:
1512
description: 'trigger tests on PR?'
1613
default: 1
@@ -68,20 +65,16 @@ jobs:
6865
6966
- name: Run update script
7067
run: |
71-
gma_flag=
72-
if [[ ${{ github.event.inputs.includeGMA }} -eq 1 ]]; then
73-
gma_flag="--include_gma"
74-
fi
7568
if [[ ${{ github.event.inputs.updateiOS }} -eq 1 ]]; then
7669
if [[ ${{ github.event.inputs.updateAndroid }} -eq 1 ]]; then
7770
# Update both
7871
echo "Updating all dependencies"
79-
python scripts/update_android_ios_dependencies.py --logfile=${UPDATE_LOGFILE} ${gma_flag}
72+
python scripts/update_android_ios_dependencies.py --logfile=${UPDATE_LOGFILE}
8073
echo "CHOSEN_DEPS=mobile" >> $GITHUB_ENV
8174
else
8275
# Update iOS only
8376
echo "Updating iOS dependencies only"
84-
python scripts/update_android_ios_dependencies.py --skip_android --logfile=${UPDATE_LOGFILE} ${gma_flag}
77+
python scripts/update_android_ios_dependencies.py --skip_android --logfile=${UPDATE_LOGFILE}
8578
echo "CHOSEN_DEPS=iOS" >> $GITHUB_ENV
8679
fi
8780
# iOS: Update Firestore external version to match Firestore Cocoapod version.
@@ -165,7 +158,7 @@ jobs:
165158
elif [[ ${{ github.event.inputs.updateAndroid }} -eq 1 ]]; then
166159
# Update Android only
167160
echo "Updating Android dependencies only"
168-
python scripts/update_android_ios_dependencies.py --skip_ios --logfile=${UPDATE_LOGFILE} ${gma_flag}
161+
python scripts/update_android_ios_dependencies.py --skip_ios --logfile=${UPDATE_LOGFILE}
169162
echo "CHOSEN_DEPS=Android" >> $GITHUB_ENV
170163
else
171164
echo "::error ::Neither Android nor iOS selected. Exiting."

Android/firebase_dependencies.gradle

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ def firebaseDependenciesMap = [
2727
'dynamic_links' : ['com.google.firebase:firebase-dynamic-links'],
2828
'firestore' : ['com.google.firebase:firebase-firestore'],
2929
'functions' : ['com.google.firebase:firebase-functions'],
30-
'gma' : ['com.google.android.gms:play-services-ads:23.0.0',
31-
'com.google.android.ump:user-messaging-platform:2.2.0'],
3230
'installations' : ['com.google.firebase:firebase-installations'],
3331
'invites' : ['com.google.firebase:firebase-invites'],
3432
// Messaging has an additional local dependency to include.
@@ -52,7 +50,6 @@ def firebaseResourceDependenciesMap = [
5250
'auth' : [':auth:auth_resources'],
5351
'database' : [':database:database_resources'],
5452
'firestore' : [':firestore:firestore_resources'],
55-
'gma' : [':gma:gma_resources'],
5653
'remote_config' : [':remote_config:remote_config_resources'],
5754
'storage' : [':storage:storage_resources'],
5855
'ump' : [':ump:ump_resources']
@@ -94,9 +91,6 @@ class Dependencies {
9491
def getFirestore() {
9592
libSet.add('firestore')
9693
}
97-
def getGma() {
98-
libSet.add('gma')
99-
}
10094
def getFunctions() {
10195
libSet.add('functions')
10296
}

CMakeLists.txt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@ option(FIREBASE_INCLUDE_FIRESTORE
4848
option(FIREBASE_INCLUDE_FUNCTIONS
4949
"Include the Cloud Functions for Firebase library."
5050
${FIREBASE_INCLUDE_LIBRARY_DEFAULT})
51-
option(FIREBASE_INCLUDE_GMA "Include the GMA library."
52-
${FIREBASE_INCLUDE_LIBRARY_DEFAULT})
5351
option(FIREBASE_INCLUDE_UMP "Include the UMP library."
5452
${FIREBASE_INCLUDE_LIBRARY_DEFAULT})
5553
option(FIREBASE_INCLUDE_INSTALLATIONS
@@ -125,9 +123,8 @@ if(FIREBASE_CPP_BUILD_TESTS OR FIREBASE_CPP_BUILD_STUB_TESTS)
125123
endif()
126124

127125
if (PLATFORM STREQUAL TVOS OR PLATFORM STREQUAL SIMULATOR_TVOS)
128-
# GMA, UMP, and FDL are not supported on tvOS.
126+
# UMP and FDL are not supported on tvOS.
129127
set(FIREBASE_INCLUDE_DYNAMIC_LINKS OFF)
130-
set(FIREBASE_INCLUDE_GMA OFF)
131128
set(FIREBASE_INCLUDE_UMP OFF)
132129
endif()
133130

@@ -635,9 +632,6 @@ endif()
635632
if (FIREBASE_INCLUDE_FUNCTIONS)
636633
add_subdirectory(functions)
637634
endif()
638-
if (FIREBASE_INCLUDE_GMA)
639-
add_subdirectory(gma)
640-
endif()
641635
if (FIREBASE_INCLUDE_UMP)
642636
add_subdirectory(ump)
643637
endif()

README.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ iOS, and desktop platforms. It includes the following Firebase libraries:
1010
|[Google Analytics for Firebase](https://firebase.google.com/docs/analytics/)|
1111
|[Firebase Authentication](https://firebase.google.com/docs/auth/)|[Firebase Realtime Database](https://firebase.google.com/docs/database/)|
1212
|[Firebase Dynamic Links](https://firebase.google.com/docs/dynamic-links/)|[Cloud Firestore](https://firebase.google.com/docs/firestore/)|
13-
|[Cloud Functions for Firebase](https://firebase.google.com/docs/functions/)|[Firebase Invites](https://firebase.google.com/docs/invites/)|
14-
|[Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging/)|[Firebase Remote Config](https://firebase.google.com/docs/remote-config/)|
15-
|[Cloud Storage for Firebase](https://firebase.google.com/docs/storage/)|
13+
|[Cloud Functions for Firebase](https://firebase.google.com/docs/functions/)|[Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging/)|
14+
|[Firebase Remote Config](https://firebase.google.com/docs/remote-config/)|[Cloud Storage for Firebase](https://firebase.google.com/docs/storage/)|
1615

1716
<br>
1817

@@ -117,7 +116,6 @@ The CMake following targets are available to build and link with:
117116
| Firebase Dynamic Links | firebase_dynamic_links |
118117
| Cloud Firestore | firebase_firestore |
119118
| Cloud Functions for Firebase | firebase_functions |
120-
| Firebase Invites | firebase_invites |
121119
| Firebase Cloud Messaging | firebase_messaging |
122120
| Firebase Remote Config | firebase_remote_config |
123121
| Cloud Storage for Firebase | firebase_storage |
@@ -222,7 +220,6 @@ release version of each Firebase library is:
222220
| Firebase Dynamic Links | :dynamic_links:assembleRelease |
223221
| Cloud Firestore | :firestore:assembleRelease |
224222
| Cloud Functions for Firebase | :functions:assembleRelease |
225-
| Firebase Invites | :invites:assembleRelease |
226223
| Firebase Cloud Messaging | :messaging:assembleRelease |
227224
| Firebase Remote Config | :remote_config:assembleRelease |
228225
| Cloud Storage for Firebase | :storage:assembleRelease |

app/CMakeLists.txt

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -541,17 +541,6 @@ if (IOS)
541541
${FIREBASE_SOURCE_DIR}/functions/src/include/firebase/functions/callable_reference.h
542542
${FIREBASE_SOURCE_DIR}/functions/src/include/firebase/functions/callable_result.h
543543
${FIREBASE_SOURCE_DIR}/functions/src/include/firebase/functions/common.h)
544-
set(gma_HDRS
545-
${FIREBASE_SOURCE_DIR}/gma/src/include/firebase/gma.h
546-
${FIREBASE_SOURCE_DIR}/gma/src/include/firebase/gma/ad_view.h
547-
${FIREBASE_SOURCE_DIR}/gma/src/include/firebase/gma/interstitial_ad.h
548-
${FIREBASE_SOURCE_DIR}/gma/src/include/firebase/gma/internal/native_ad.h
549-
${FIREBASE_SOURCE_DIR}/gma/src/include/firebase/gma/internal/query_info.h
550-
${FIREBASE_SOURCE_DIR}/gma/src/include/firebase/gma/rewarded_ad.h
551-
${FIREBASE_SOURCE_DIR}/gma/src/include/firebase/gma/types.h
552-
${FIREBASE_SOURCE_DIR}/gma/src/include/firebase/gma/ump.h
553-
${FIREBASE_SOURCE_DIR}/gma/src/include/firebase/gma/ump/consent_info.h
554-
${FIREBASE_SOURCE_DIR}/gma/src/include/firebase/gma/ump/types.h)
555544
set(installations_HDRS
556545
${FIREBASE_SOURCE_DIR}/installations/src/include/firebase/installations.h)
557546
set(messaging_HDRS
@@ -580,7 +569,6 @@ if (IOS)
580569
${dynamic_links_HDRS}
581570
${firestore_HDRS}
582571
${functions_HDRS}
583-
${gma_HDRS}
584572
${installations_HDRS}
585573
${messaging_HDRS}
586574
${remote_config_HDRS}

build_scripts/ios/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ readonly SUPPORTED_PLATFORMS=(device simulator)
2727
readonly SUPPORTED_ARCHITECTURES=(arm64 x86_64)
2828
readonly DEVICE_ARCHITECTURES=(arm64)
2929
readonly SIMULATOR_ARCHITECTURES=(arm64 x86_64)
30-
readonly SUPPORTED_TARGETS=(firebase_analytics firebase_auth firebase_app_check firebase_database firebase_dynamic_links firebase_firestore firebase_functions firebase_gma firebase_installations firebase_messaging firebase_remote_config firebase_storage firebase_ump)
30+
readonly SUPPORTED_TARGETS=(firebase_analytics firebase_auth firebase_app_check firebase_database firebase_dynamic_links firebase_firestore firebase_functions firebase_installations firebase_messaging firebase_remote_config firebase_storage firebase_ump)
3131

3232
# build default value
3333
buildpath="ios_build"

build_scripts/packaging.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33
# List of all Firebase products to include in the binary SDK package.
44
readonly -a product_list=(analytics app app_check auth database
5-
dynamic_links firestore functions gma installations messaging
5+
dynamic_links firestore functions installations messaging
66
remote_config storage ump)

docs/Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ SORT_GROUP_NAMES = YES
1313
JAVADOC_AUTOBRIEF = YES
1414

1515
# Firebase-specific options.
16-
PREDEFINED = DOXYGEN DOXYGEN_ADMOB FIREBASE_DEPRECATED FIREBASE_NAMESPACE=firebase
16+
PREDEFINED = DOXYGEN FIREBASE_DEPRECATED FIREBASE_NAMESPACE=firebase
1717
MACRO_EXPANSION = YES # Expand FIREBASE_DEPRECATED macros.
1818
EXPAND_ONLY_PREDEF = YES # Expand FIREBASE_DEPRECATED macros.
1919
VERBATIM_HEADERS = NO

gma/CMakeLists.txt

Lines changed: 0 additions & 156 deletions
This file was deleted.

0 commit comments

Comments
 (0)