flutter icon indicating copy to clipboard operation
flutter copied to clipboard

Flutter: problem with SystemChrome.setPreferredOrientations when I use it with an iPad - and error with iOS 16

Open csacchetti opened this issue 2 years ago • 4 comments

In my project, I only need to have one page in landscape mode and not in portrait mode, while the rest of the pages are in portrait and landscape mode.

As per the documentation, I used SystemChrome.setPreferredOrientations

@override 
   void initState() {
    
    // set the screen in landscape mode
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
    ]);

   super.initState();
}

and

@override
  void dispose() {
    // restore the
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
    ]);
    
    super.dispose();
  }

when I exit the page to restore the portrait mode.

Now, while with the iPhone it works perfectly (the page is forced into landscape mode only), with the iPad it is as if it were not there and both landscape and portrait are possible. Of course as I don't want the whole application in landscape mode but only one page I can't act on info.plist. Has anyone had the same problem?

I have noticed that with iOS 16 it also does this error (although it works fine with the iPhone)

[Orientation] BUG IN CLIENT OF UIKIT: Setting UIDevice.orientation is not supported. Please use UIWindowScene.requestGeometryUpdate(_:)

I also saw that this is a problem introduced by iOS 16: https://developer.apple.com/forums/thread/707735

my doctor -v

[✓] Flutter (Channel stable, 3.3.10, on macOS 12.6.2 21G320 darwin-x64, locale it-IT)
    • Flutter version 3.3.10 on channel stable at /Users/carlosacchetti/Developer/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 135454af32 (6 weeks ago), 2022-12-15 07:36:55 -0800
    • Engine revision 3316dd8728
    • Dart version 2.18.6
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/carlosacchetti/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] IntelliJ IDEA Community Edition (version 2021.1.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.74.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.58.0

[✓] Connected device (4 available)
    • iPhone 14 (mobile)                             • DEF9CAB0-24F5-44D2-8FAA-F40B260AD874 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-2
      (simulator)
    • iPad Pro (12.9-inch) (6th generation) (mobile) • F5A9C789-A17F-43B8-9751-C419E514EA01 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-2
      (simulator)
    • macOS (desktop)                                • macos                                • darwin-x64     • macOS 12.6.2 21G320 darwin-x64
    • Chrome (web)                                   • chrome                               • web-javascript • Google Chrome 109.0.5414.119

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

csacchetti avatar Jan 29 '23 20:01 csacchetti

Thanks for the report @csacchetti The error you pointed out has been fixed as part of this issue : https://github.com/flutter/flutter/issues/111587 and should be available on latest master if you try and switch to it (flutter channel master followed by flutter upgrade --force). The commit doesn't seem to be in latest stable yet, as I see the commit is in master version per https://github.com/flutter/flutter/commit/6ea01e6aec25405b56667b2beb3966a789f9db44

So try to switch to latest master and run your use case again to see if you still get the same behavior or not.

darshankawar avatar Jan 30 '23 10:01 darshankawar

Thank you @darshankawar. Today I upgraded to Dart 3.7. Are you aware that the fix is also present in this latest version?

csacchetti avatar Jan 30 '23 15:01 csacchetti

The fix should be available on latest master which is using Dart 3.0.0, but the dart version is unrelated here. If you switch to latest master and try running your scenario again, the reported error should not occur per the fix made.

darshankawar avatar Jan 31 '23 05:01 darshankawar

I tried version 3.7 of flutter. About the Orientation problem in iOS 16 the error message,

[Orientation] BUG IN CLIENT OF UIKIT: Setting UIDevice.orientation is not supported. Please use UIWindowScene.requestGeometryUpdate(_:)

mentioned above, has disappeared. However, the problem on the iPad where it does not rotate and gives a new error message has not yet been resolved. This is new error only for iPad:

Failed to change device orientation: Error Domain=UISceneErrorDomain Code=101 "The current windowing mode does not allow for programmatic changes to interface orientation." UserInfo={NSLocalizedDescription=The current windowing mode does not allow for programmatic changes to interface orientation.}

As far as the iPhone is concerned, while it used to work correctly, now when I go back to the page where all the orientations are available, it only keeps the horizontal orientation. As a workaround to get it to work I have to first send a command with only portrait and then again the command with all the orientations I want.

to give only landscape mode

@override 
   void initState() {
    
    // set the screen in landscape mode
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeRight,
    ]);

   super.initState();
}

to return with all orientations

@override
  void dispose() {
    restoreOrientation();
    super.dispose();
  }

Future<bool> restoreOrientation() async {
    // restore multiple orientation
    // before portrait for a bug in iOS 16
    await SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
    ]);
    // then all wanted orientation
    await SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
    ]);
    return true;
  }

This is what happened after testing flutter 3.7

My new Doctor -v is:

[✓] Flutter (Channel stable, 3.7.0, on macOS 12.6.2 21G320 darwin-x64, locale it-IT)
    • Flutter version 3.7.0 on channel stable at /Users/carlosacchetti/Developer/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b06b8b2710 (8 days ago), 2023-01-23 16:55:55 -0800
    • Engine revision b24591ed32
    • Dart version 2.19.0
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/carlosacchetti/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)

[✓] IntelliJ IDEA Community Edition (version 2021.1.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.74.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.58.0

[✓] Connected device (8 available)
    • ANE LX1 (mobile)                               • 89U7N18330004866                     • android-arm64  • Android 9 (API 28)
    • iPhone SE (3rd generation) (mobile)            • 56484625-7707-4C44-9F29-3D2A06988F38 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-2
      (simulator)
    • iPhone 14 Pro (mobile)                         • 52291C7F-6FD3-4BC1-8EC8-6ED2B67006F5 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-2
      (simulator)
    • iPad Air (5th generation) (mobile)             • 904BA423-E0C7-48DC-87B5-A0F4B9F85B35 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-2
      (simulator)
    • iPad mini (6th generation) (mobile)            • 23515587-CC9C-489E-A81E-F8832485186D • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-2
      (simulator)
    • iPad Pro (12.9-inch) (6th generation) (mobile) • F5A9C789-A17F-43B8-9751-C419E514EA01 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-2
      (simulator)
    • macOS (desktop)                                • macos                                • darwin-x64     • macOS 12.6.2 21G320 darwin-x64
    • Chrome (web)                                   • chrome                               • web-javascript • Google Chrome 109.0.5414.119

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

csacchetti avatar Jan 31 '23 13:01 csacchetti

Thanks for the update. Can you provide a complete minimal code sample that we can use to verify this ?

I came up with below sample but not sure if it represents your use case or not.

code sample

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or simply save your changes to "hot reload" in a Flutter IDE).
        // Notice that the counter didn't reset back to zero; the application
        // is not restarted.
        primarySwatch: Colors.yellow,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  // This widget is the home page of your application. It is stateful, meaning
  // that it has a State object (defined below) that contains fields that affect
  // how it looks.

  // This class is the configuration for the state. It holds the values (in this
  // case the title) provided by the parent (in this case the App widget) and
  // used by the build method of the State. Fields in a Widget subclass are
  // always marked "final".

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;


  @override
  void initState() {

    // set the screen in landscape mode
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
    ]);

    super.initState();
  }

  @override
  void dispose() {
    // restore the
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
    ]);

    super.dispose();
  }


  void _incrementCounter() {
    setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Center(
        // Center is a layout widget. It takes a single child and positions it
        // in the middle of the parent.
        child: Column(
          // Column is also a layout widget. It takes a list of children and
          // arranges them vertically. By default, it sizes itself to fit its
          // children horizontally, and tries to be as tall as its parent.
          //
          // Invoke "debug painting" (press "p" in the console, choose the
          // "Toggle Debug Paint" action from the Flutter Inspector in Android
          // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
          // to see the wireframe for each widget.
          //
          // Column has various properties to control how it sizes itself and
          // how it positions its children. Here we use mainAxisAlignment to
          // center the children vertically; the main axis here is the vertical
          // axis because Columns are vertical (the cross axis would be
          // horizontal).
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text(
              'You have pushed the button this many times:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
    Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => const SecondRoute()),
    );
    },
        tooltip: 'Increment',
        child: const Icon(Icons.ac_unit_rounded),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

class SecondRoute extends StatelessWidget {
  const SecondRoute({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Second Route'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            Navigator.pop(context);
          },
          child: const Text('Go back!'),
        ),
      ),
    );
  }
}

I also see that this could be iOS 16 related behavior. Although I don't have the latest iOS, but I'll request my colleague to verify this once we get a reproducible code sample.

darshankawar avatar Feb 01 '23 06:02 darshankawar

I have a similar interesting issue. Tested it on iOS 16.2 simulator and a real iPhone device.

When I define the orientations like this:

SystemChrome.setPreferredOrientations([
  DeviceOrientation.landscapeLeft,
  DeviceOrientation.landscapeRight,
]);

It forces the screen to rotate to landscape, all good. However, when I set the preferred orientations like this:

SystemChrome.setPreferredOrientations([
  DeviceOrientation.landscapeLeft,
  DeviceOrientation.landscapeRight,
  DeviceOrientation.portraitUp,
]);

The screen remains in portrait mode AND it gets stuck there - it seems like landscape orientations are ignored.

flutter doctor -v:

[✓] Flutter (Channel stable, 3.7.0, on macOS 13.1 22C65 darwin-arm64, locale en-LT)
    • Flutter version 3.7.0 on channel stable at /Users/mkazlauskas/dev/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b06b8b2710 (8 days ago), 2023-01-23 16:55:55 -0800
    • Engine revision b24591ed32
    • Dart version 2.19.0
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mkazlauskas/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/mkazlauskas/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] VS Code (version 1.74.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.58.0

[✓] Connected device (3 available)
    • iPhone 14 (mobile) • 4ED970DA-DF0D-43DC-8862-6B5ABA8280BA • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-2 (simulator)
    • macOS (desktop)    • macos                                • darwin-arm64   • macOS 13.1 22C65 darwin-arm64
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 109.0.5414.119

[✓] HTTP Host Availability
    • All required HTTP hosts are available
    
• No issues found!

mkobuolys avatar Feb 01 '23 10:02 mkobuolys

I am experiencing a similar issue as @mkobuolys described on iPhone iOS 16.2, where the SystemChrome.setPreferredOrientations only works once. If I set orientation right after building finishes, it does what it should do. But if I set it again with a different set of orientations, nothing changes.

I've tried @csacchetti 's solution, unfortunately it does not work for my case.

The SystemChrome.setPreferredOrientations setter works as it should be on iOS 15.

shuotwang avatar Feb 02 '23 03:02 shuotwang

Thanks for providing your findings @mkobuolys and @shuotwang

When I define the orientations like this:

SystemChrome.setPreferredOrientations([
  DeviceOrientation.landscapeLeft,
  DeviceOrientation.landscapeRight,
]);

It forces the screen to rotate to landscape, all good. However, when I set the preferred orientations like this:

SystemChrome.setPreferredOrientations([
  DeviceOrientation.landscapeLeft,
  DeviceOrientation.landscapeRight,
  DeviceOrientation.portraitUp,
]);

The screen remains in portrait mode AND it gets stuck there - it seems like landscape orientations are ignored.

I tried this using latest stable (3.7.0) on iOS 15.2 and observed the same behavior, so maybe it is not iOS 16 specific ?

Screenshot 2023-02-02 at 11 42 04 AM

SystemChrome.setPreferredOrientations only works once. If I set orientation right after building finishes, it does what it should do. But if I set it again with a different set of orientations, nothing changes.

This I observed on iOS 15.2 simulator too.

Please check below similar / related issues and see if they resonates with your use cases:

https://github.com/flutter/flutter/issues/57748 https://github.com/flutter/flutter/issues/34230 https://github.com/flutter/flutter/issues/73651

darshankawar avatar Feb 02 '23 06:02 darshankawar

About the error message on iPad (reported in https://github.com/flutter/flutter/issues/119473#issuecomment-1410337725)

It is probably related to the limitation described in SystemChrome.setPreferredOrientations documentation: see https://api.flutter.dev/flutter/services/SystemChrome/setPreferredOrientations.html

Limitations

This setting will only be respected on iPad if multitasking is disabled.

You can decide to opt out of multitasking on iPad, then setPreferredOrientations will work but your app will not support Slide Over and Split View multitasking anymore.

Should you decide to opt out of multitasking you can do this by setting "Requires full screen" to true in the Xcode Deployment Info.

bleroux avatar Feb 02 '23 15:02 bleroux

Thanks @bleroux, in fact, by setting 'Requires full screen' adding in info.plist:

<key>UIRequiresFullScreen</key>
<true/>

the error disappears and landscape mode is maintained. It is a strange handling because it behaves differently to the iPhone, but indeed the iPad is not the iPhone.

csacchetti avatar Feb 02 '23 21:02 csacchetti

@csacchetti Can this issue be closed as resolved based on above comments ?

darshankawar avatar Feb 03 '23 05:02 darshankawar

As far as I am concerned yes

csacchetti avatar Feb 03 '23 08:02 csacchetti

@darshankawar This is still an issue on iPhone (the one I mentioned above).

Please check below similar / related issues and see if they resonates with your use cases: https://github.com/flutter/flutter/issues/57748 https://github.com/flutter/flutter/issues/34230 https://github.com/flutter/flutter/issues/73651

None of these really resonated with the problem I mentioned (https://github.com/flutter/flutter/issues/34230 is the most similar, I suppose). Should I ask about the problem in that issue?

mkobuolys avatar Feb 03 '23 09:02 mkobuolys

Started getting this error in iphone. Failed to change device orientation: Error Domain=UISceneErrorDomain Code=101 "None of the requested orientations are supported by the view controller. Requested: landscapeLeft, landscapeRight; Supported: portrait" UserInfo={NSLocalizedDescription=None of the requested orientations are supported by the view controller. Requested: landscapeLeft, landscapeRight; Supported: portrait}

sanalkv avatar Feb 03 '23 10:02 sanalkv

@sanalkv For this, you need to add available app orientations to the Info.plist file, like this:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>

👆 In the array, only leave the orientations you want to support.

mkobuolys avatar Feb 03 '23 10:02 mkobuolys

Hi @mkobuolys , I found that these were already existing in info.plist. In fact i got these issue recently after the upgrade to flutter. Previously the feature was working without any issue. Not sure if the issue related to the latest update.

sanalkv avatar Feb 03 '23 10:02 sanalkv

As far as I am concerned yes

Thanks. Based on OP's comment, I'll go ahead and close this as resolved.

This is still an issue on iPhone

@mkobuolys Since this original issue was specifically for iPad, let's track iphone related behavior separately.

Should I ask about the problem in that issue?

Yes, you may share your findings in that issue for better tracking.

darshankawar avatar Feb 03 '23 12:02 darshankawar

I am forced to reopen the issue because it is indeed still there. You can clearly see it if you remove "Stage manager" from the iPad and the iPad works as before on full screen. After introducing "required full screen" function in xCode in runner/general you can see that the error no longer does this, but if you force a single page to remain in landscape with

 SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeRight,
    ]);

when you return to the rest of the pages it does not take the various options,

SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
    ]);

but only takes one of them (e.g. only portraitUp or only landscapeLeft etc.).

 SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp
    ]);

but the rest of the pages remain forced to this orientation only, which you do not want. After forcing the first time to one orientation afterwards it no longer receives the array with several orientations but only one.

Before entering the page and running the command that forces landscape mode all orientations were available as set in the info.plist. I think this is a bug that arose with the change in page management in ipadOS 16 due to the introduction of 'Stage manager'. It needs to be corrected as soon as possible because this is a basic function.

csacchetti avatar Feb 16 '23 09:02 csacchetti

My new doctor -v

Flutter (Channel stable, 3.7.1, on macOS 13.2 22D49 darwin-arm64, locale it-IT)
    • Flutter version 3.7.1 on channel stable at /Users/carlosacchetti/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7048ed95a5 (2 weeks ago), 2023-02-01 09:07:31 -0800
    • Engine revision 800594f1f4
    • Dart version 2.19.1
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/carlosacchetti/Library/Android/sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301)

[✓] VS Code (version 1.75.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.58.0

[✓] Connected device (4 available)
    • iPhone di Carlo (mobile) • 8197a7889687e1b6883fab3f8b749fd17b32538b • ios            • iOS 16.2 20C65
    • iPad di CS (mobile)      • 00008027-001C504E1168002E                • ios            • iOS 16.3.1 20D67
    • macOS (desktop)          • macos                                    • darwin-arm64   • macOS 13.2 22D49 darwin-arm64
    • Chrome (web)             • chrome                                   • web-javascript • Google Chrome 109.0.5414.119

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!
```

csacchetti avatar Feb 16 '23 09:02 csacchetti

@csacchetti Can you please file a new issue and provide all relevant details in it so that we can track and address it properly ? This issue has mix of iphone and ipad related behavior which makes it a bit confusing to properly track the original issue.

darshankawar avatar Feb 17 '23 05:02 darshankawar

I'm not able to switch to the master channel due to dependencies. Do we know when this'll be pushed to the stable channel? Does anyone have any workarounds?

mikezander avatar Feb 23 '23 20:02 mikezander

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

github-actions[bot] avatar Mar 09 '23 21:03 github-actions[bot]