Search Issue Tracker

Won't Fix

Votes

0

Found in

2019.3

2019.3.15f1

2020.2

Issue ID

1258471

Regression

No

[iOS] checking if 'Unity Is Paused' after Unity 'did Resign Active' results in a crash

iOS

-

Reproduction steps:
1. Open the project in "AdMobCrash.zip"
2. Build the application for iOS
3. Make sure your device has an internet connection and deploy the project to the device (use xcworkspace)
4. Press "Load Interstitial" Button
5. Press "Show Interstitial" Button after the Ad finishes loading
6. Minimize the Application using the button on your device while the Add is running
7. Force Quit the application

Expected result: the application does not crash
Actual result: application crashes (note 2)

Reproducible with: 2019.3.16f1, 2020.2.0a16 (read note 1)
Not reproducible with: 2019.4.2f1, 2020.1.0b14
Could not test with: 2018.4, because the project 'breaks' (not possible to view or load the adds)

Reproducible with:
VLNQA00310 iPad Pro 12.9 (iOS 13.4.1)
VLNQA00301 iPad 7th gen (iOS 13.2.2)
Not reproducible with:
VLNQA00242 iPhone 7 (iOS 12.3.1)
VLNQA00204 iPhone 5C (iOS 10.3.3)
VLNQA00160 iPhone 6S (iOS 13.3.1)

Notes:
1. In 2020.2.0a16 after force shutting down the app, no signal is returned to Xcode
2. A workaround for this is to:
1) In GADUInterstitial.m after imports add an "extern bool _didResignActive" (it is defined in UnityAppController.mm)
2) In GADUInterstitial.m add an "if(_didResignActive) return;" before "if(UnityIsPaused())" check at (void)interstitialDidDismissScreen:(GADInterstitial *)ad

  1. Resolution Note (2020.2.X):

    unity api was called without checking for _didResignActive
    even if make UnityIsPaused/UnityPause safe in that scenario, the project in question calls back to il2cpp so the crash remains (it will just move)

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.