Xamarin.Plugin.DeviceOrientation icon indicating copy to clipboard operation
Xamarin.Plugin.DeviceOrientation copied to clipboard

App crashes when I lock orientation to PortraitFlipped

Open Stensan opened this issue 6 years ago • 10 comments

Hi, in my app I need to change to PortraitFlipped at one time. But when I try to do this, the app crashes with this error: Foundation.MonoTouchException: Objective-C exception thrown. Name: UIApplicationInvalidInterfaceOrientation Reason: Supported orientations has no common orientation with the application, and [Xamarin_Forms_Platform_iOS_PlatformRenderer shouldAutorotate] is returning YES

This is my Info.plist:

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

In my AppDelegate I have put this:

[Export("application:supportedInterfaceOrientationsForWindow:")]
public UIInterfaceOrientationMask GetSupportedInterfaceOrientations(UIApplication application, IntPtr forWindow)
{
	return DeviceOrientationImplementation.SupportedInterfaceOrientations;
}

The other orientations are not causing trouble. I am working with Xamarin.Forms, the device is an iPhone 8 and the crash occurs both on the real device and simulator.

Stensan avatar May 31 '18 07:05 Stensan

Hi @Stensan

Which version of Xamarin.Forms do you use?

wcoder avatar May 31 '18 07:05 wcoder

Hi @wcoder I use the latest stable version 3.0.0.482510

Stensan avatar May 31 '18 07:05 Stensan

Ok, I will try to investigate the issue.

Workaround: Try to use the latest 2.x version of Xamarin.Forms.

wcoder avatar May 31 '18 08:05 wcoder

@Stensan

Would you please provide me an example of plugin using, when the application crashed (for quickly reproduce)?

wcoder avatar May 31 '18 09:05 wcoder

Sure, thanks for helping!

OrientationBug.zip

Stensan avatar May 31 '18 09:05 Stensan

I installed older Xamarin.Forms versions (2.5.1, 2.5.0 and 2.4.0) but each time I get the same exception.

Stensan avatar May 31 '18 11:05 Stensan

Oh, yes, you right.

Try version 2.3.5.256-pre6

wcoder avatar May 31 '18 11:05 wcoder

So it seems this is indeed a bug in Xamarin.Forms. I'll go and open a bug report there. Thanks again.

Stensan avatar May 31 '18 12:05 Stensan

Currently, I have an idea for this issue (workaround):

  • Create new custom renderer as UIViewController for XF page;
  • Override the same methods in this ViewController (as here https://github.com/wcoder/Xamarin.Plugin.DeviceOrientation#ios-specific-support)

wcoder avatar May 31 '18 12:05 wcoder

No sorry, this doesn't work. There is no more error now, but page does not rotate to upside down. I think this is really a xamarin bug, because even without plugin the portrait upside down doesn't work as expected when I turn my phone.

Stensan avatar May 31 '18 12:05 Stensan