• Victoria Ashworth's avatar
    Fix log filtering and CI tests for iOS 17 physical devices (#132491) · ec0b7443
    Victoria Ashworth authored
    Fixes a couple of issues introduced in new iOS 17 physical device tooling: https://github.com/flutter/flutter/pull/131865.
    
    1) Duplicate messages were being filtered out too aggressively. 
    
    For example, if on the counter app, you printed "Increment!" on button click, it would only print once no matter how many times you clicked.
    
    Sometimes more than one log source is used at a time and the original intention was to filter duplicates between two log sources, so it wouldn't print the same message from both logs. However, it would also filter when the same message was added more than once via the same log.
    
    The new solution distinguishes a "primary" and a "fallback" log source and prefers to use the primary source unless it's not working, in which it'll use the fallback. If the fallback is faster than the primary, the primary will exclude the logs received by the fallback in a 1-to-1 fashion to prevent too-aggressive filtering. Once a flutter-message has been received by the primary source, fallback messages will be ignored.
    
    Note: iOS < 17 did not regress.
    
    2) There was a race condition between the shutdown hooks and exiting XcodeDebug that was causing a crash when deleting a file that doesn't exist. This only affects CI  - for the new integration tests and when testing with iOS 17 physical devices.
    ec0b7443
xcode_debug_test.dart 35.7 KB