Skip to content

[interactive_media_ads] Fixes AdEventTypes not triggering on iOS in release mode #8918

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 31, 2025

Conversation

bparrishMines
Copy link
Contributor

@bparrishMines bparrishMines commented Mar 27, 2025

Because _delegate was an unused field, Dart would garbage collect the value in release mode. To prevent this, this adds the @pragma('vm:entry-point') to indicate that the value is an entry point for the platform side. See the comment above the field.

Fixes flutter/flutter#163049

Pre-Review Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene page, which explains my responsibilities.
  • I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/packages repo does use dart format.)
  • I signed the CLA.
  • The title of the PR starts with the name of the package surrounded by square brackets, e.g. [shared_preferences]
  • I linked to at least one issue that this PR fixes in the description above.
  • I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or I have commented below to indicate which version change exemption this PR falls under1.
  • I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style, or I have commented below to indicate which CHANGELOG exemption this PR falls under1.
  • I updated/added any relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or I have commented below to indicate which test exemption this PR falls under1.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. 2 3

@bparrishMines bparrishMines changed the title fix [interactive_media_ads] Fixes AdEventTypes not triggering on iOS in release mode Mar 27, 2025
@bparrishMines bparrishMines marked this pull request as ready for review March 27, 2025 17:11
@bparrishMines
Copy link
Contributor Author

Text Exempt reason: Integration tests on CI run in debug mode, but the bug only occurs in release mode.

Copy link
Contributor

@stuartmorgan-g stuartmorgan-g left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@stuartmorgan-g
Copy link
Contributor

test-exempt: specific to a configuration we can't test in CI

(If we hit more issues like this, maybe a bespoke profile build integration test would work?)

@bparrishMines bparrishMines added the autosubmit Merge PR when tree becomes green via auto submit App label Mar 28, 2025
@bparrishMines
Copy link
Contributor Author

(If we hit more issues like this, maybe a bespoke profile build integration test would work?)

My assumption is that this only happens when the linter finds an unused field because it indicates that a value could be tree-shaken.

Alternatively, I considered adding delegates set with IOSClassName.delegate as associated objects. Especially since this is a unique quirk for the platform. This option is also easier to test.

@auto-submit auto-submit bot merged commit 9125a63 into flutter:main Mar 31, 2025
82 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 31, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 31, 2025
vashworth pushed a commit to vashworth/packages that referenced this pull request Mar 31, 2025
… release mode (flutter#8918)

Because `_delegate` was an unused field, Dart would garbage collect the value in release mode. To prevent this, this adds the `@pragma('vm:entry-point')` to indicate that the value is an entry point for the platform side. See the comment above the field.

Fixes flutter/flutter#163049

## Pre-Review Checklist

[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 1, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 2, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 2, 2025
github-merge-queue bot pushed a commit to flutter/flutter that referenced this pull request Apr 2, 2025
flutter/packages@125c117...07496eb

2025-04-02 [email protected] [multicast_dns]
MDnsClient::listen supports onError callback (flutter/packages#8888)
2025-04-02 [email protected] Upgrade tests to
use Xcode 16 and iOS 18 (flutter/packages#8968)
2025-04-01 [email protected] Manual roll Flutter from
1d954f4 to 05b5e79 (225 revisions) (flutter/packages#8960)
2025-04-01 [email protected] Drop deprecated HTML head
meta tags (flutter/packages#8970)
2025-04-01 [email protected] Adjust PR checklist formatter
discussion (flutter/packages#8924)
2025-04-01 [email protected] Update CODEOWNERS username
(flutter/packages#8933)
2025-04-01 [email protected]
[flutter_markdown] Added sizedImageBuilder to Markdown widget
(flutter/packages#6739)
2025-04-01 [email protected] [google_maps_flutter] Skip impl copy
of iOS tests (flutter/packages#8975)
2025-04-01 [email protected] [google_maps_flutter] Skip more
hanging iOS tests (flutter/packages#8967)
2025-04-01 [email protected] [url_launcher] When not fully loaded,
clicking close causes the callback to not be triggered correctly.
(flutter/packages#8582)
2025-04-01 [email protected] [camera_avfoundation] Test utils
and mocks swift migration - part 2 (flutter/packages#8892)
2025-03-31 [email protected] [webview_flutter]
Skip flaky legacy tests on iOS (flutter/packages#8911)
2025-03-31 [email protected] [camera_android] Don't override
default fps range when not recording (flutter/packages#8891)
2025-03-31 [email protected] [google_maps_flutter] Fix
typo and remove duplicitous CHANGELOG entry (flutter/packages#8754)
2025-03-31 [email protected] [extension_gsi] Support the
latest version of googleapis_auth (flutter/packages#8931)
2025-03-31 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.android.tools.build:gradle from 8.0.0 to 8.9.1 in
/packages/pigeon/platform_tests/test_plugin/android
(flutter/packages#8955)
2025-03-31 [email protected] [webview_flutter_wkwebview] Fixes crash
when sending undefined message via javascript channel
(flutter/packages#8776)
2025-03-31 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.android.tools.build:gradle from 8.0.0 to 8.9.1 in
/packages/pigeon/platform_tests/alternate_language_test_plugin/android
(flutter/packages#8946)
2025-03-31 [email protected]
[interactive_media_ads] Fixes `AdEventType`s not triggering on iOS in
release mode (flutter/packages#8918)
2025-03-31 [email protected] [google_maps_flutter] Skip test that
hangs iOS CI (flutter/packages#8958)
2025-03-28 [email protected] Manual roll Flutter from
b16430b to 1d954f4 (114 revisions) (flutter/packages#8922)
2025-03-28 [email protected] [camera_avfoundation] Test utils
and mocks swift migration - part 3 (flutter/packages#8912)
2025-03-27 [email protected] Use a more deterministic way of
waiting for ad widgets to be ready. (flutter/packages#8920)
2025-03-27 [email protected] [camera_avfoundation] Test utils
and mocks swift migration - part 1 (flutter/packages#8890)
2025-03-27 [email protected] [pigeon] correct usage of extended
generics in generator methods (flutter/packages#8910)
2025-03-27 [email protected] [video_player] Fix
layout issue caused by `Transform.rotate` not affecting space
calculation. (flutter/packages#8685)
2025-03-27 [email protected]
[shared_preferences] Fix a late initialized error with the example app
(flutter/packages#8540)
2025-03-26 [email protected] [various] Disable sandbox in Chrome
dart tests (flutter/packages#8909)
2025-03-25 [email protected] [tool] Move changed file detection to
base command class (flutter/packages#8730)
2025-03-25 [email protected] [Camera] Add lens
type information (iOS) (flutter/packages#8723)
2025-03-25 [email protected] [pigeon] kotlin equality methods
(flutter/packages#8887)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected] on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

---------

Co-authored-by: Maurice Parrish <[email protected]>
github-merge-queue bot pushed a commit to flutter/flutter that referenced this pull request Apr 3, 2025
flutter/packages@125c117...07496eb

2025-04-02 [email protected] [multicast_dns]
MDnsClient::listen supports onError callback (flutter/packages#8888)
2025-04-02 [email protected] Upgrade tests to
use Xcode 16 and iOS 18 (flutter/packages#8968)
2025-04-01 [email protected] Manual roll Flutter from
1d954f4 to 05b5e79 (225 revisions) (flutter/packages#8960)
2025-04-01 [email protected] Drop deprecated HTML head
meta tags (flutter/packages#8970)
2025-04-01 [email protected] Adjust PR checklist formatter
discussion (flutter/packages#8924)
2025-04-01 [email protected] Update CODEOWNERS username
(flutter/packages#8933)
2025-04-01 [email protected]
[flutter_markdown] Added sizedImageBuilder to Markdown widget
(flutter/packages#6739)
2025-04-01 [email protected] [google_maps_flutter] Skip impl copy
of iOS tests (flutter/packages#8975)
2025-04-01 [email protected] [google_maps_flutter] Skip more
hanging iOS tests (flutter/packages#8967)
2025-04-01 [email protected] [url_launcher] When not fully loaded,
clicking close causes the callback to not be triggered correctly.
(flutter/packages#8582)
2025-04-01 [email protected] [camera_avfoundation] Test utils
and mocks swift migration - part 2 (flutter/packages#8892)
2025-03-31 [email protected] [webview_flutter]
Skip flaky legacy tests on iOS (flutter/packages#8911)
2025-03-31 [email protected] [camera_android] Don't override
default fps range when not recording (flutter/packages#8891)
2025-03-31 [email protected] [google_maps_flutter] Fix
typo and remove duplicitous CHANGELOG entry (flutter/packages#8754)
2025-03-31 [email protected] [extension_gsi] Support the
latest version of googleapis_auth (flutter/packages#8931)
2025-03-31 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.android.tools.build:gradle from 8.0.0 to 8.9.1 in
/packages/pigeon/platform_tests/test_plugin/android
(flutter/packages#8955)
2025-03-31 [email protected] [webview_flutter_wkwebview] Fixes crash
when sending undefined message via javascript channel
(flutter/packages#8776)
2025-03-31 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.android.tools.build:gradle from 8.0.0 to 8.9.1 in
/packages/pigeon/platform_tests/alternate_language_test_plugin/android
(flutter/packages#8946)
2025-03-31 [email protected]
[interactive_media_ads] Fixes `AdEventType`s not triggering on iOS in
release mode (flutter/packages#8918)
2025-03-31 [email protected] [google_maps_flutter] Skip test that
hangs iOS CI (flutter/packages#8958)
2025-03-28 [email protected] Manual roll Flutter from
b16430b to 1d954f4 (114 revisions) (flutter/packages#8922)
2025-03-28 [email protected] [camera_avfoundation] Test utils
and mocks swift migration - part 3 (flutter/packages#8912)
2025-03-27 [email protected] Use a more deterministic way of
waiting for ad widgets to be ready. (flutter/packages#8920)
2025-03-27 [email protected] [camera_avfoundation] Test utils
and mocks swift migration - part 1 (flutter/packages#8890)
2025-03-27 [email protected] [pigeon] correct usage of extended
generics in generator methods (flutter/packages#8910)
2025-03-27 [email protected] [video_player] Fix
layout issue caused by `Transform.rotate` not affecting space
calculation. (flutter/packages#8685)
2025-03-27 [email protected]
[shared_preferences] Fix a late initialized error with the example app
(flutter/packages#8540)
2025-03-26 [email protected] [various] Disable sandbox in Chrome
dart tests (flutter/packages#8909)
2025-03-25 [email protected] [tool] Move changed file detection to
base command class (flutter/packages#8730)
2025-03-25 [email protected] [Camera] Add lens
type information (iOS) (flutter/packages#8723)
2025-03-25 [email protected] [pigeon] kotlin equality methods
(flutter/packages#8887)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC [email protected] on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

---------

Co-authored-by: Maurice Parrish <[email protected]>
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Apr 3, 2025
@bparrishMines bparrishMines deleted the ima_eventtypes branch May 19, 2025 03:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App p: interactive_media_ads Plugin for IMA SDK platform-android platform-ios
Projects
None yet
Development

Successfully merging this pull request may close these issues.

AdEventType triggering issue on iOS in Release mode
2 participants