airsdk / Adobe-Runtime-Support

Report, track and discuss issues in Adobe AIR. Monitored by Adobe - and HARMAN - and maintained by the AIR community.
203 stars 11 forks source link

Missing full-screen support for the latest iPad mini display #1533

Open httpwebmedia opened 2 years ago

httpwebmedia commented 2 years ago

Problem Description

Submit IPA gives back this little warning :

ITMS-90901: Missing full-screen support for the latest iPad mini display. The “My App.app” bundle includes UIRequiresFullScreen=YES in the Info.plist or supports only a subset of UISupportedInterfaceOrientations, and is built with the 14.1 SDK. To take advantage of the full screen size, recompile with Xcode 13 and the SDK for iPadOS 15 or later.

The manifest we use :

   <iPhone>
      <InfoAdditions><![CDATA[
  <key>NSAppTransportSecurity</key>
  <dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSAllowsArbitraryLoadsForMedia</key>
    <true/>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
  </dict>
  <key>NSCalendarsUsageDescription</key>
  <string>Some ad content may access calendar</string>
  <key>UIDeviceFamily</key>
  <array>
    <string>1</string>
    <string>2</string>
  </array>
  <key>GADApplicationIdentifier</key>
  <string>ca-app-pub-XXXXXXXXXXXXXXX~XXXXXX</string>
  <key>NSBluetoothAlwaysUsageDescription</key>
  <string>Some ad content may access bluetooth</string>
  <key>MinimumOSVersion</key>
  <string>9.0</string>
  <key>GADDelayAppMeasurementInit</key>
  <true/>
  <key>NSUserTrackingUsageDescription</key>
  <string>This identifier will be used to deliver personalized ads to you.</string>
  <key>SKAdNetworkItems</key>
  <array>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>cstr6suwn9.skadnetwork</string>
    </dict>
  </array>
]]></InfoAdditions>
      <requestedDisplayResolution>high</requestedDisplayResolution>
      <Entitlements>
        <![CDATA[
            <key>com.apple.security.application-groups</key>
            <array>
                <string>group.allapps</string>
            </array>
        ]]>
    </Entitlements>
    </iPhone> 

Any workaround ? Thank you for your help!

llyRayYoung commented 2 years ago

Update your air sdk to AIR 33.1.1.633 or above. The following are added in AIR SDK 33.1.1.633 AIR-5080: Updating IPA constants to use Xcode13/iOS15.0 values

httpwebmedia commented 2 years ago

thank you

jackwlee01 commented 2 years ago

I am getting this issue on both v33.1.1.633 and v33.1.1.743.

Is there anything else that can be having an effect?

FliplineStudios commented 2 years ago

@jackwlee01 Is the error message from Apple the same as above, claiming that you're using the 14.1 SDK instead of 15? And have you unzipped your IPA to check the Info.plist to check which values it's showing there? I haven't tried uploading anything myself recently, but with .743 in my IPA I'm seeing DTPlatformVersion 15.0 / DTSDKName iphoneos15.0 / DTXcodeBuild 13A233 / CTAirSdkVersion 33.1.1.743. Just curious if yours is also saying the same thing (and Apple is still thinking it's the 14.1 SDK despite all of these values showing XCode 13 / iOS 15)...

jackwlee01 commented 2 years ago

@FliplineStudios Yep, it is the same error.

I unzipped the IPA and inspected the plist file as you described. The values for DTPlatformVersion, DTSDKName, DTXcodeBuild, and CTAirSdkVersion are also the same as yours.

FliplineStudios commented 2 years ago

That's odd, based on the release notes AIR should be using iOS 15 SDK now, but it sounds like something isn't quite right...

@ajwfrost Could you take a look into what might be going wrong with Apple flagging AIR apps as being built with iOS 14.1 SDK instead of iOS 15 in the latest version?

ajwfrost commented 2 years ago

@FliplineStudios @jackwlee01 I've just looked at the files generated by AIR vs the ones generated by Xcode13 + iphoneos SDK 13 .. the binary itself looks fine with the load command showing a minimum iphoneos version of 9.0 and sdk of 15.0. The normal values in the Info.plist file also look identical with the xcode version and sdk version and codes all matching.

So it's a little tricky to know what Apple are actually doing to test this and to base their decision upon... the stub files that are in the AIR SDK are all built from the files that are provided from iphoneos 15, and the building of these is done by the xcode 13 build tools.

The only things I could see that are in an xcode-generated IPA vs an AIR-generated one were a couple of new tags added into the Info.plist file:

    <key>DTAppStoreToolsBuild</key>
    <string>13A233</string>
    <key>BuildMachineOSBuild</key>
    <string>20F71</string>

So I'm wondering whether it's worth adding those (via the InfoAdditions mechanism) and seeing if that helps? Or else, any information that Apple could provide that justifies them saying it's using iOS 14.1 SDK would be good, as it really isn't...!

thanks

jackwlee01 commented 2 years ago

@ajwfrost I just tried adding those those tags, and it did not seem to have any effect :(

ajwfrost commented 2 years ago

Re-opening this one as it appears to be more than just the SDK update... can I please check: @httpwebmedia - did your IPA get accepted by Apple in the end, after updating to the later AIR SDK? and were you building with mac or Windows? @jackwlee01 - are you using a mac or a Windows machine? If it's a mac .. I may have a cunning plan...

thanks

jackwlee01 commented 2 years ago

Thanks @ajwfrost

I am on a Mac.

ajwfrost commented 2 years ago

@jackwlee01 just as an update here .. we had been hoping to get a mechanism together where we can generate an Xcode project from an AIR project, allowing you to then build/deploy etc directly within Xcode (and therefore hopefully satisfying Apple!). However there are a few challenges to this, so it's taking longer than we expected.

I was going through it with one of the iOS folk though and he pointed out two differences between an IPA that would be generated by Xcode vs the ones that we're creating:

1) we have the MainWindow.nib as a folder containing two files, rather than just as a single file (and the same for the ipad variant). This was because of how one of the Xcode versions a while ago had changed how they generated things, but they've since changed it back. So potentially, we also need to change it back in the AIR SDK (we had been holding off because of the impact on Flex SDK overlays....)

2) we have different icon names from what Xcode would generate ... although for this one, we'd looked at updating it but according to Apple's documentation, the naming doesn't actually matter.

So I think in the short term, if we do a quick update that changes the nib mechanism and update those files from the latest Xcode, it's worth trying out... will try to upload a version in the next day or so for this.

thanks

FliplineStudios commented 2 years ago

Might be worth checking, for anyone having this issue -- when uploading a 743 build, is the warning saying the AIR app is built with the 14.5 SDK, or the 14.1 SDK? I've seen posts on the Starling forum saying a 713 uploaded build was claiming 14.5, and others saying a 743 build was claiming 14.1, which seems bizarre that it would go even further back with the newest SDK. Also might be worth checking if the XCode "DerivedData" folder is caching the info for an older upload you've made, and if clearing that directory helps. This is an older post, but I've found this thread mentioning a similar problem a year or two back, and the last comments mention clearing XCode's DerivedData folder or else it keeps reporting an older SDK was used: https://developer.apple.com/forums/thread/129203

ajwfrost commented 2 years ago

Hi

Thanks @FliplineStudios - interesting to see if the XCode DerivedData folder is going to be affecting things...

Also @jackwlee01 in order to try out an IPA file that has the MainWindow*.nib files built from the latest Xcode, can you please update your AIR SDK with some files from the attached zip:

thanks Xcode13.zip

ajwfrost commented 2 years ago

@jackwlee01 can I check whether you've had any success here? Did Apple accept it with the above change to the MainWindow.nib file? and/or with the removal of the DerivedData cache?

thanks

jackwlee01 commented 2 years ago

@ajwfrost Thanks for following up. The project is on hold at the moment so I haven't been able to try out any fixes. We are having some back and forth with Apple on another issue.

The mechanism for generating an Xcode project sounds really promising! Does this mean there is a big push to revive/rebrand Air?