Search Issue Tracker

Fixed in 2018.1.X

Fixed in 5.6.X, 2017.1.X, 2017.2.X, 2017.3.X

Votes

1

Found in

2017.2.0f3

Issue ID

960439

Regression

No

[iOS 11] Build crashes on remotear`::UnityUpdateDisplayList() when launching app from URL with AirPlay connected

iOS

-

To reproduce:
1. Open project attached by the user
2. Build it for iOS platform
3. Open build .xcodeproj file in XCode
4. Go to Product -> Scheme -> Edit Scheme
5. Select "Info" tab and tick "Wait for executable to be launched"
6. Build to device
7. Connect the device to Apple TV (to use screen mirroring)
8. After the device is connected to Apple TV go to Safari (on device) and type: airplaycrash://
9. It will ask to open an app, hit open

Expected result: Application should be launched from URL
Actual result: Application crashes on start

Reproduced with: 5.6.3p4, 2017.2.0f3, 2017.3.0b5, 2018.1.0a1
Device: iPhone 6s iOS 11.0

Not reproducible with iPad mini 3 iOS 10.3

Fixed in: 2018.1.0b1
Backported to: 2017.3.0p2, 2017.2.1p2, 2017.1.3p1, 5.6.5p3

Comments (52)

  1. jsmits062

    Mar 14, 2018 16:05

    @BRIGHTONRICH are you able to post a DisplayManager fix that doesn't break airplay? The concern is that if apple is rejecting apps because of this crash they may still expect airplay to be functioning properly. In other words your post may help prevent the crash (for older versions of unity) - but wouldn't the build still be at risk for an apple submission rejection if airplay isn't working.?

  2. brightonrich

    Mar 14, 2018 15:06

    Unfortunately, we are not planning any further patch releases for versions older than 5.6.

    However, as a workaround and only if you're not using AirPlay or Secondary Displays:

    Modify the trampoline code generated for your project at 'Classes/Unity/DisplayManager.mm' to not add observers for 'UIScreenDidConnectNotification' and 'UIScreenDidDisconnectNotification'

    So:

    ```
    - (id)init
    {
    if( (self = [super init]) )
    {
    /* [[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(screenDidConnect:)
    name:UIScreenDidConnectNotification
    object:nil
    ];

    [[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(screenDidDisconnect:)
    name:UIScreenDidDisconnectNotification
    object:nil
    ];
    */
    _displayConnection = [NSMapTable
    mapTableWithKeyOptions:NSPointerFunctionsStrongMemory | NSPointerFunctionsObjectPointerPersonality
    valueOptions:NSPointerFunctionsStrongMemory | NSPointerFunctionsObjectPointerPersonality
    ];

    for(UIScreen* screen in [UIScreen screens])
    [self registerScreen:screen];

    _mainDisplay = self[[UIScreen mainScreen]];
    }
    return self;
    }
    ```

    You can also alter the installed Unity playback engine directly at 'Unity/PlaybackEngines/iOSSupport/Trampoline/Classes/Unity/DisplayManager.mm'

    This should prevent the crash for 5.4.

    4.7 Trampoline can be fixed in the same way or again via the playback engine at 'Unity.app/Contents/PlaybackEngines/iossupport/Trampoline/Classes/Unity' or the Windows equivalent.

  3. ALSY

    Mar 14, 2018 09:56

    Please backport this to 4.7 versions! our game is still based on that version.

  4. UltraJeff

    Mar 13, 2018 22:38

    Will this be backported to 5.4 versions?

  5. funfile

    Mar 13, 2018 22:15

    backport to 5.4 please!

  6. kenjilyx

    Mar 13, 2018 22:04

    Will this fix be backported to 5.4 versions? Our game is still on 5.4 and got rejected by Apple.

  7. brightonrich

    Mar 13, 2018 15:18

    The fix has been backported and will be in 5.6.5p3

  8. wuang

    Mar 13, 2018 13:08

    Please backport this to 5.6 versions!!!!!!

  9. PStal

    Mar 13, 2018 12:21

    Please backport this also to 5.6 versions since this is causing many rejections from Apple Review Team...

  10. HidingGlass

    Mar 12, 2018 14:34

    Glad to have found this fix. We believe this bug was causing iOS app-store rejections because testers were using screen-streaming. Something we would never test in-house!

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.