UIInterfaceOrientation info.plist - ios

I am working on an iOS app using Adobe Air to package it.
I am trying to set the InterfaceOrientation to the info.plist.
So added UIInterfaceOrienation to my app.xml but it gives me "application.iPhone.InfoAdditions contains an invalid value" error when I try to create an iOS Package.
This is what the app.xml looks like
<iPhone>
<InfoAdditions>
<![CDATA[
...... other values
<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>
]]>
</InfoAdditions>
Not too sure what I'm missing here.
Any ideas?

I don't think you will be able to do this via the air packager.
The closest you will be able to get imho is this
portrait
false
The solution you suggested will work in native development, but not (yet) using the air packager.
I think you are going to be able to change it via code like this: stage.setOrientation( StageOrientation.ROTATED_LEFT );
source : http://polygeek.com/4301_air-mobile_playing-with-stage-orientation-in-mobile-air-apps

Related

How to turn off "Requires Full Screen" option in iOS using Cordova 6?

When you create an application using Cordova 6, then build it for iOS, you will see that if you open the project properties on XCode, the option "Requires full screen" is enabled:
This is very troublesome because it prevents the app from "multitasking" on iOS (you cannot split the screen with your app open), as mentioned in [CB-9161] Support iPad multitasking in iOS 9:
Just want to mention, the fix (2) also needs to update the project's
info plist file to indicate the app does not require the full screen
as shown below
<key>UIRequiresFullScreen</key>
<false/>
In previous versions of Cordova, you were able to control this option using the FullScreen preference. However this no longer has an effect on iOS. The recommended alternative way is to use the cordova-plugin-statusbar plugin. But this does not provide any option to turn off full screen and the other options offered by the plugin do not allow multitasking either.
Question: how do you turn off the "Requires full screen" option from your Cordova 6 project (meaning: without having to manually update the XCode project after building for iOS)?
I would use the Cordova Custom Config plugin
With that plugin, you can pretty much change anything on the plist or manifestfile via the config.xml
So in your case, after installing the plugin, just add:
<config-file parent="UIRequiresFullScreen" platform="ios" target="*-Info.plist">
<false/>
</config-file>
in your config.xml

Error while submitting ipa onto AppStore

I'm working on a libgdx project and using robovm to try and deploy my project on iOS. I've build an ipa using the robovm tool in eclipse.
While submitting the ipa using Application Loader, I get the below error:
Invalid Bundle. iPad Multitasking support requires launch story board in bundle BundleNameHere
Invalid Bundle. iPad Multitasking support requires these orientations: 'UIInterfaceOrientationPortrait,
UIInterfaceOrientationPortraitUpsideDown...etc
On doing some research I understand these can be done away with by checking an option in Xcode for Requires Full Screen. However, I am unsure how to handle this in libgdx.
I am assuming that I need to do some additional settings in my libgdx/robovm project that I've missed.
Can anyone point out the required settings, please?
Thanks in advance
Since you are using RoboVM you need to edit the info.plist.xml file. As per Bunty Madan's answer you need to set:
<key>UIRequiresFullScreen</key>
<true/>
If this does not work, please supply your full info.plist.xml file (just redact any personal ID's if you use any)
By my experience this issue already . Did you uncheck the unnecessary orientations in plist for iPAD, UIInterfaceOrientationPortraitUpsideDown
This is because you need to specify how your iOS app is supposed to handle multitasking on iPad.
For now if your app is not going to support the multitasking feature just check requireFullScreen option in project setting.
else for making direct entry into plisthere is the ket for that.
<key>UIRequiresFullScreen</key><true/>
And also please validate your LaunchImage storyboard or image whatever you using.
Try this, hope it will help!

Trigger.io: iOS 9 iPad Multitasking error

UPDATE: This problem is now solved by using the latest version of Trigger.io
This question is about how to get around the ITMS-90475 error using Trigger.io (and not xcode).
After the release of iOS 9, i get the following error when submitting an app to the App Store that is built using Trigger.io/Forge:
ERROR ITMS-90475: "Invalid Bundle. iPad Multitasking support requires launch story board in bundle
I am developing on linux, and not using xcode to upload my app. From other stackoverflow answers (e.g. this: https://stackoverflow.com/a/32563605/1030104) I see one solution is to disable multitasking support using xcode.
Does anyone know whether this is possible to do using only Trigger.io and not xcode?
According to this answer, your bundle should be valid if you deactivate multitasking for your app. Add this to your Info.plist:
<key>UIRequiresFullScreen</key>
<string>YES</string>
As you're using Trigger.io, this means you have to edit the Info.plist file in between forge build and forge package either programatically (as part of your build process) or by editing the file manually.
For your target, check Requires Full Screen on the General Page:
try adding the bellow code to the info.plist
<key>UIRequiresFullScreen</key>
<true/>

How to name iOS launch icons for a universal app?

This may be a trivial question, but I can't seem to find a concise answer on how to appropriately name (and what dimensions to use) for the iOS launch icons?
Note I am not using Xcode but rather am porting a LibGDX game over to iOS via RoboVM. This is what my iOS /data/ folder looks like right now:
I think I have all of the "Default" launch images set properly, but I'm not sure about the launch icons. (All of this confusion is really coming from the fact that there is scarce info about the new iPhone 6 and 6 Plus.)
So basically, what launch icon files are wrong and/or are missing?
Oh, also in my plist.xml file, this is what I have:
If I add more launch icon images, would I need to change anything here?
(I'm new to iOS development if it isn't painfully obvious yet.)
In my libGDX ios project, I have the following icons in my ios/resources folder (not in the data folder):
Icon-40.png
Icon-40#2x.png
Icon-60.png
Icon-60#2x.png
Icon-72.png
Icon-72#2x.png
Icon-76.png
Icon-76#2x.png
Icon-Small-50.png
Icon-Small-50#2x.png
Icon-Small.png
Icon-Small#2x.png
Icon.png
Icon#2x.png
And then in my Info.plist.xml file I have:
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>Icon</string>
<string>Icon-40</string>
<string>Icon-60</string>
<string>Icon-72</string>
<string>Icon-76</string>
<string>Icon-Small</string>
<string>Icon-Small-50</string>
</array>
<key>UIPrerenderedIcon</key>
<true/>
</dict>
</dict>
This seems to work as desired. And, since I'm here and these also took a while to work out, here are the launch images, including the new iPhone 6 and 6+ which it seems are needed to allow native screen resolution support on those devices:
Default-375w-667h#2x.png
Default-414w-736h#3x.png
Default-568h#2x.png
Default-Landscape#2x~ipad.png
Default-Landscape~ipad.png
Default.png
Default#2x.png
Default#2x~ipad.png
Default~ipad.png
As far as I can tell, there are no corresponding Plist entries needed for these.
Hope this helps!
See section "Icons for Universal Apps" of the following document:
https://developer.apple.com/library/ios/qa/qa1686/_index.html
They follow the format Icon-"size".
There is now a dedicated wiki page to how to define your icon when you submit your app for iOS.
It´s available here:
https://github.com/MobiVM/robovm/wiki/Howto-Create-an-Asset-Catalog-for-XCode-9-Appstore-Submission%3F
Since xCode 9 you need to define an asset catalog

Remove icon gloss effect from an Adobe Air iOS app?

How do you prevent iTunes from adding the default gloss effect when compiling an iOS app using Adobe Air? Using Adobe Flash CS6. . . .
Add the following to the InfoAdditions element in the application descriptor file:
<InfoAdditions>
<![CDATA[
<key>UIPrerenderedIcon</key>
<true/>
]]>
</InfoAdditions>
from : http://help.adobe.com/en_US/air/build/WS901d38e593cd1bac1e63e3d129907d2886-8000.html
This will require you to add a boolean UIPrerenderedIcon key to the app's info.plist file and set it's value to true.
To do so, follow the steps below:
Change the extension of the .ipa file produced by Flash CS6 to .zip.
Unzip the file and right-click to view the app's contents, which should be located in a directory named "Payload."
Locate and edit the info.plist file, adding the UIPrerenderedIcon key/value pair mentioned above.

Resources