Search Issue Tracker

Fixed in Unity 2018.2

Votes

0

Found in

2017.3.0f3

Issue ID

984517

Regression

Yes

[iOS] Crash when calling native UIViewController that changes orientation settings

iOS

-

-

Priority: 2Necessary for shipping a final release

-

Severity: 1Crash, freeze, data loss, work stops

Project is attempting to present UIImagePickerController (Library Photos set, which is the only portrait) while the Unity game is set Auto Rotation as Default Orientation in the iOS Player Settings and Landscape Right and Landscape Left marked as the only allowed Orientation.
The issue only appears on devices running iOS 10, iOS 9 and iOS 8.

Steps:
1. Build and run attached project for iOS ("CrashOrientation.zip")
2. In Player: press Button

Result: player crashes.

From Xcode Output:
2018-01-19 17:08:33.233 orientCrash[2078:1105573] Uncaught exception: UIApplicationInvalidInterfaceOrientation: Supported orientations has no common orientation with the application, and [PUUIAlbumListViewController shouldAutorotate] is returning YES
2018-01-19 17:08:33.234 orientCrash[2078:1105573] *** Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'Supported orientations has no common orientation with the application, and [PUUIAlbumListViewController shouldAutorotate] is returning YES'

Reproduced with: 2018.1.0b3, 2017.3.0p3, 2017.2.1p2.
Not reproduced with: 2017.1.3f1.

Tested with:
iPhone 7 plus - iOS11.1 - not reproduced
iPhone 7 plus - iOS10.3.2 - reproduced
iPad mini 4 - iOS9.2.1 - reproduced
iPhone 6 - iOS8.0.1 - reproduced

Note:
-the original problem was found using ads SDK (see user's email for more info)
-not reproducible on devices running iOS 11.

Comments (2)

  1. Ab7cd2f9c683f68fa419e4ae856ed3f8?d=mm

    MikkoHaapoja

    Jun 21, 2018 03:56

    I'm seeing this with Unity 2018.1.5f1.

    The following code will cause this issue:

    void LockOrientation() {
    Screen.autorotateToPortrait =
    Screen.autorotateToLandscapeLeft =
    Screen.autorotateToLandscapeRight =
    Screen.autorotateToPortraitUpsideDown = false;
    }

    void UnlockOrientation() {
    Screen.autorotateToPortrait =
    Screen.autorotateToLandscapeLeft =
    Screen.autorotateToLandscapeRight =
    Screen.autorotateToPortraitUpsideDown = true;
    }

    First call lock and then later unlock.

  2. 1a88ff6a09e850f18f39bc83aa45cde0?d=mm

    Valdeco

    Apr 17, 2018 20:30

    Reproduced on Unity 2017.4.1f1 LTS. When will it be back-ported?

All about bugs

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