Skip to content

Commit abce53b

Browse files
firebase-workflow-trigger[bot]firebase-workflow-trigger-botjonsimantov
authored
Update mobile GMA dependencies - Wed Mar 13 2024 (#1553)
* Update mobile dependencies - Wed Mar 13 2024 ### Android - com.google.android.gms.play_services_ads → 23.0.0 ### iOS - Google-Mobile-Ads-SDK → 11.1.0 - GoogleUserMessagingPlatform → 2.2.0 > Created by [Update Android and iOS dependencies workflow](https://github.com/firebase/firebase-cpp-sdk/actions/runs/8271821999). * Add flag to update script to ignore or not ignore GMA. * Add flag for updating GMA to the workflow. --------- Co-authored-by: firebase-workflow-trigger-bot <[email protected]> Co-authored-by: Jon Simantov <[email protected]>
1 parent fbd9f87 commit abce53b

File tree

9 files changed

+63
-32
lines changed

9 files changed

+63
-32
lines changed

.github/workflows/update-dependencies.yml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ on:
88
updateiOS:
99
description: 'update iOS dependencies?'
1010
default: 1
11+
includeGMA:
12+
description: 'include GMA?'
13+
default: 0
1114
triggerTests:
1215
description: 'trigger tests on PR?'
1316
default: 1
@@ -63,16 +66,20 @@ jobs:
6366
6467
- name: Run update script
6568
run: |
69+
gma_flag=
70+
if [[ ${{ github.event.inputs.includeGMA }} -eq 1 ]]; then
71+
gma_flag="--include_gma"
72+
fi
6673
if [[ ${{ github.event.inputs.updateiOS }} -eq 1 ]]; then
6774
if [[ ${{ github.event.inputs.updateAndroid }} -eq 1 ]]; then
6875
# Update both
6976
echo "Updating all dependencies"
70-
python scripts/update_android_ios_dependencies.py --logfile=${UPDATE_LOGFILE}
77+
python scripts/update_android_ios_dependencies.py --logfile=${UPDATE_LOGFILE} ${gma_flag}
7178
echo "CHOSEN_DEPS=mobile" >> $GITHUB_ENV
7279
else
7380
# Update iOS only
7481
echo "Updating iOS dependencies only"
75-
python scripts/update_android_ios_dependencies.py --skip_android --logfile=${UPDATE_LOGFILE}
82+
python scripts/update_android_ios_dependencies.py --skip_android --logfile=${UPDATE_LOGFILE} ${gma_flag}
7683
echo "CHOSEN_DEPS=iOS" >> $GITHUB_ENV
7784
fi
7885
# iOS: Update Firestore external version to match Firestore Cocoapod version.
@@ -156,7 +163,7 @@ jobs:
156163
elif [[ ${{ github.event.inputs.updateAndroid }} -eq 1 ]]; then
157164
# Update Android only
158165
echo "Updating Android dependencies only"
159-
python scripts/update_android_ios_dependencies.py --skip_ios --logfile=${UPDATE_LOGFILE}
166+
python scripts/update_android_ios_dependencies.py --skip_ios --logfile=${UPDATE_LOGFILE} ${gma_flag}
160167
echo "CHOSEN_DEPS=Android" >> $GITHUB_ENV
161168
else
162169
echo "::error ::Neither Android nor iOS selected. Exiting."

Android/firebase_dependencies.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ 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:22.6.0',
30+
'gma' : ['com.google.android.gms:play-services-ads:23.0.0',
3131
'com.google.android.ump:user-messaging-platform:2.2.0'],
3232
'installations' : ['com.google.firebase:firebase-installations'],
3333
'invites' : ['com.google.firebase:firebase-invites'],

gma/gma_resources/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ android {
5252
dependencies {
5353
implementation platform('com.google.firebase:firebase-bom:32.7.4')
5454
implementation 'com.google.firebase:firebase-analytics'
55-
implementation 'com.google.android.gms:play-services-ads:22.6.0'
55+
implementation 'com.google.android.gms:play-services-ads:23.0.0'
5656
implementation 'com.google.android.ump:user-messaging-platform:2.2.0'
5757
}
5858

gma/integration_test/Podfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ use_frameworks! :linkage => :static
66
target 'integration_test' do
77
platform :ios, '12.0'
88
pod 'Firebase/CoreOnly', '10.22.0'
9-
pod 'Google-Mobile-Ads-SDK', '11.0.1'
10-
pod 'GoogleUserMessagingPlatform', '2.1.0'
9+
pod 'Google-Mobile-Ads-SDK', '11.1.0'
10+
pod 'GoogleUserMessagingPlatform', '2.2.0'
1111
end
1212

1313
post_install do |installer|

gma/src/android/gma_android.h

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,20 @@ namespace gma {
4141
X(Constructor, "<init>", "()V"), \
4242
X(Build, "build", "()Lcom/google/android/gms/ads/AdRequest;"), \
4343
X(AddKeyword, "addKeyword", \
44-
"(Ljava/lang/String;)Lcom/google/android/gms/ads/AdRequest$Builder;"), \
44+
"(Ljava/lang/String;)" \
45+
"Lcom/google/android/gms/ads/AbstractAdRequestBuilder;"), \
4546
X(AddNetworkExtrasBundle, "addNetworkExtrasBundle", \
46-
"(Ljava/lang/Class;Landroid/os/Bundle;)" \
47-
"Lcom/google/android/gms/ads/AdRequest$Builder;"), \
47+
"(Ljava/lang/Class;Landroid/os/Bundle;)" \
48+
"Lcom/google/android/gms/ads/AbstractAdRequestBuilder;"), \
4849
X(SetContentUrl, "setContentUrl", \
49-
"(Ljava/lang/String;)Lcom/google/android/gms/ads/AdRequest$Builder;"), \
50+
"(Ljava/lang/String;)" \
51+
"Lcom/google/android/gms/ads/AbstractAdRequestBuilder;"), \
5052
X(SetNeighboringContentUrls, "setNeighboringContentUrls", \
51-
"(Ljava/util/List;)Lcom/google/android/gms/ads/AdRequest$Builder;"), \
53+
"(Ljava/util/List;)" \
54+
"Lcom/google/android/gms/ads/AbstractAdRequestBuilder;"), \
5255
X(SetRequestAgent, "setRequestAgent", \
53-
"(Ljava/lang/String;)Lcom/google/android/gms/ads/AdRequest$Builder;")
56+
"(Ljava/lang/String;)" \
57+
"Lcom/google/android/gms/ads/AbstractAdRequestBuilder;")
5458
// clang-format on
5559

5660
// clang-format off

ios_pod/Podfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use_frameworks!
55
target 'GetPods' do
66
pod 'Firebase/Core', '10.22.0'
77

8-
pod 'Google-Mobile-Ads-SDK', '11.0.1'
9-
pod 'GoogleUserMessagingPlatform', '2.1.0'
8+
pod 'Google-Mobile-Ads-SDK', '11.1.0'
9+
pod 'GoogleUserMessagingPlatform', '2.2.0'
1010
pod 'Firebase/Analytics', '10.22.0'
1111
pod 'Firebase/AppCheck', '10.22.0'
1212
pod 'Firebase/Auth', '10.22.0'

release_build_files/Android/firebase_dependencies.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ 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:22.6.0',
30+
'gma' : ['com.google.android.gms:play-services-ads:23.0.0',
3131
'com.google.android.ump:user-messaging-platform:2.2.0'],
3232
'installations' : ['com.google.firebase:firebase-installations'],
3333
'invites' : ['com.google.firebase:firebase-invites'],

release_build_files/readme.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ Google Mobile Ads | libfirebase_gma.a
134134
| | libfirebase_app.a
135135
| | com.google.firebase:firebase-analytics
136136
| | (Maven package)
137-
| | com.google.android.gms:play-services-ads:22.6.0
137+
| | com.google.android.gms:play-services-ads:23.0.0
138138
| | (Maven package)
139139
| | com.google.android.ump:user-messaging-platform:2.2.0
140140
| | (Maven package)
@@ -253,8 +253,8 @@ Firebase Functions | firebase_functions.xcframework
253253
Google Mobile Ads | firebase_gma.xcframework
254254
| | firebase.xcframework
255255
| | Firebase/CoreOnly Cocoapod (10.22.0)
256-
| | Google-Mobile-Ads-SDK Cocoapod (10.14.0)
257-
| | GoogleUserMessagingPlatform Cocoapod (2.1.0)
256+
| | Google-Mobile-Ads-SDK Cocoapod (11.1.0)
257+
| | GoogleUserMessagingPlatform Cocoapod (2.2.0)
258258
Firebase Installations | firebase_installations.xcframework
259259
| | firebase.xcframework
260260
| | FirebaseInstallations Cocoapod (10.22.0)
@@ -316,8 +316,8 @@ Firebase Functions | libfirebase_functions.a
316316
Google Mobile Ads | libfirebase_gma.a
317317
| | libfirebase_app.a
318318
| | Firebase/CoreOnly Cocoapod (10.22.0)
319-
| | Google-Mobile-Ads-SDK Cocoapod (10.14.0)
320-
| | GoogleUserMessagingPlatform Cocoapod (2.1.0)
319+
| | Google-Mobile-Ads-SDK Cocoapod (11.1.0)
320+
| | GoogleUserMessagingPlatform Cocoapod (2.2.0)
321321
Firebase Installations | libfirebase_installations.a
322322
| | libfirebase_app.a
323323
| | FirebaseInstallations Cocoapod (10.22.0)

scripts/update_android_ios_dependencies.py

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ def get_files(dirs_and_files, file_extension, file_name=None,
168168
PODSPEC_REPOSITORY = 'https://github.com/CocoaPods/Specs.git'
169169

170170
# List of Pods that we are interested in.
171-
PODS = (
171+
PODS = [
172172
'Firebase',
173173
'FirebaseCore',
174174
'FirebaseAnalytics',
@@ -183,9 +183,19 @@ def get_files(dirs_and_files, file_extension, file_name=None,
183183
'FirebaseMessaging',
184184
'FirebaseRemoteConfig',
185185
'FirebaseStorage',
186-
'Google-Mobile-Ads-SDK'
187-
)
186+
]
187+
188+
# List of GMA pods we are also interested in.
189+
PODS_GMA = [
190+
'Google-Mobile-Ads-SDK',
191+
'GoogleUserMessagingPlatform'
192+
]
188193

194+
ANDROID_GMA_PACKAGES = [
195+
'firebase-ads',
196+
'play-services-ads',
197+
'user-messaging-platform',
198+
]
189199

190200
def get_pod_versions(specs_repo, pods=PODS, ignore_pods=None,
191201
allow_experimental=False):
@@ -275,8 +285,14 @@ def get_latest_pod_versions(specs_repo=None, pods=PODS, ignore_pods=None,
275285
# { 'PodnameA' : ['1.0.1', '2.0.4'], 'PodnameB': ['3.0.4', '1.0.2'] }
276286
# Convert string version numbers to semantic version objects
277287
# for easier comparison and get the latest version.
278-
latest_version = max([packaging.version.parse(v)
279-
for v in all_versions[pod]])
288+
parsed_versions = []
289+
for v in all_versions[pod]:
290+
try:
291+
parsed_versions.append(packaging.version.parse(v))
292+
except:
293+
# Sometimes version numbers don't parse; ignore them.
294+
continue
295+
latest_version = max(parsed_versions)
280296
# Replace the list of versions with just the latest version
281297
latest_versions[pod] = latest_version.base_version
282298
print("Latest pod versions retreived from cocoapods specs repo: \n")
@@ -695,7 +711,6 @@ def parse_cmdline_args():
695711
# iOS options
696712
parser.add_argument('--skip_ios', action='store_true',
697713
help='Skip iOS pod version update completely.')
698-
# TODO: remove default values when Ads SDK does not need to be pinned.
699714
parser.add_argument('--ignore_ios_pods', nargs='+', default=(),
700715
help='Ignore iOS pods which have any of the items specified in '
701716
'this list as substrings.')
@@ -709,11 +724,11 @@ def parse_cmdline_args():
709724
# Android options
710725
parser.add_argument('--skip_android', action='store_true',
711726
help='Skip Android libraries version update completely.')
712-
# TODO: remove default values when Ads SDK does not need to be pinned.
713-
parser.add_argument('--ignore_android_packages', nargs='+',
714-
default=('firebase-ads',),
727+
parser.add_argument('--ignore_android_packages', nargs='+', default=(),
715728
help='Ignore Android packages which have any of the items '
716729
'specified in this list as substrings.')
730+
parser.add_argument('--include_gma', action='store_true',
731+
help='Also update GMA dependencies')
717732
parser.add_argument('--depfiles', nargs='+',
718733
default=('Android/firebase_dependencies.gradle',
719734
'release_build_files/Android/firebase_dependencies.gradle'),
@@ -758,7 +773,9 @@ def main():
758773
file_name='readme')
759774

760775
if not args.skip_ios:
761-
latest_pod_versions_map = get_latest_pod_versions(args.specs_repo, PODS,
776+
latest_pod_versions_map = get_latest_pod_versions(
777+
args.specs_repo,
778+
(PODS + PODS_GMA) if args.include_gma else PODS,
762779
set(args.ignore_ios_pods), args.allow_experimental)
763780
pod_files = get_files(args.podfiles, file_extension='', file_name='Podfile',
764781
ignore_directories=set(args.ignore_directories))
@@ -769,8 +786,11 @@ def main():
769786
modify_readme_file_pods(readme_file, latest_pod_versions_map, args.dryrun)
770787

771788
if not args.skip_android:
789+
ignore_android_packages = set(args.ignore_android_packages)
790+
if not args.include_gma:
791+
ignore_android_packages.update(ANDROID_GMA_PACKAGES)
772792
latest_android_versions_map = get_latest_maven_versions(
773-
set(args.ignore_android_packages), args.allow_experimental)
793+
ignore_android_packages, args.allow_experimental)
774794
dep_files = get_files(args.depfiles, file_extension='.gradle',
775795
file_name='firebase_dependencies.gradle',
776796
ignore_directories=set(args.ignore_directories))

0 commit comments

Comments
 (0)