Ответ 1
Решением этого является использование "Ключей конкретных устройств": https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW9
Таким образом, ваши значения plist выглядят примерно так:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIRequiresFullScreen~ipad</key>
<false/>
Когда я удаляю конкретную версию ключа UIRequiresFullScreen
для iPad, я теряю полную функциональность с разделенным экраном - доступен только "слайд", потому что это не влияет на использование моего приложения на экране полного устройства.
Флажки "Ориентация устройства" предназначены для значений plist по умолчанию. Единственный способ, которым они не повлияют на приложение на iPad, - это то, что в plist есть более конкретное значение, поэтому значение специально для iPad.
Когда система ищет ключ в вашем файле Info.plist приложений, он выбирает ключ, наиболее специфичный для текущего устройства и платформы.