wcoder / Xamarin.Plugin.DeviceOrientation

Cross-platform plugin to work with screen orientation of mobile device.
MIT License
61 stars 19 forks source link

App crashes when I lock orientation to PortraitFlipped #14

Open Stensan opened 6 years ago

Stensan commented 6 years ago

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_iOSPlatformRenderer 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.

wcoder commented 6 years ago

Hi @Stensan

Which version of Xamarin.Forms do you use?

Stensan commented 6 years ago

Hi @wcoder I use the latest stable version 3.0.0.482510

wcoder commented 6 years ago

Ok, I will try to investigate the issue.

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

wcoder commented 6 years ago

@Stensan

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

Stensan commented 6 years ago

Sure, thanks for helping!

OrientationBug.zip

Stensan commented 6 years ago

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

wcoder commented 6 years ago

Oh, yes, you right.

Try version 2.3.5.256-pre6

Stensan commented 6 years ago

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

wcoder commented 6 years ago

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

Stensan commented 6 years ago

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.