My app works great on iphone 5 compiled with xe6. When I install it on the new Iphone 6, it scales and looks great too. Zero code change..
Now, Using xe7 Update 1.. My app does NOT scale on the Iphone 6. It is the size of Iphone 5..
My question is.. 2 fold..
Can I get the scaling work again? that is the easiest solution
If not.. What do I do? look at the phone type at startup? then manually adjust every control? or do I make different screen layouts for each phone size? Ive only written phone apps since the Iphone 5 came out.. so I have no experience with diff screen sizes..
Last edit: Gordon 2014-12-10
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for the idea.. If I make a very very basic app, with just one view and one button.. From scratch.. Its still doesnt scale..
In Xe6, I make it for iphone 5.. scales to iphone 6 with no code changes..The button realigns, and it still in the center.. perfect scaling..
In xe7, The button is off center when using iphone 6.
I found this about using Iphone 6's .. doest this make any sense to anyone?
"To let the system know that your app supports the iPhone 6 screen sizes, include a storyboard launch screen file in your app’s bundle. At runtime, the system looks for a storyboard launch screen file. If such an file is present, the system assumes that your app supports the iPhone 6 and 6 Plus explicitly and runs it in fullscreen mode. If such an image is not present, the system reports a smaller screen size (either 320 by 480 points or 320 by 568 points) so that your app’s screen-based calculations continue to be correct. The contents are then scaled to fit the larger screen."
Last edit: Gordon 2014-12-14
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This means that iOS scales an application if it is not marked as compatible with the iPhone 6.
If your application is compatible with the iPhone 6 it should provide a layout that is optimized for it. So create a layout for the iPhone 6 or use alignment and anchors.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well , good news and bad news.. the good news is I got my app to work right.. The bad news is Im still not sure how I did it..
At least I can say goodbye to XE6 for my app..
But when I create a new app, I still cant make it scale right..
Ive tried using the the default deployment (plist) and also making my own.. Ive gone to the form properties, then formfactor/devices and checked Ipad..
Ive tried a DPF app, and a normal Firemonkey app.. same issue..
I cant make it scale.. Im sorry to be such a pain, but this one is really making me pull my hair out.. It must be something so simple..
When you appied the resize bugfix update.. did you have to do anything special? Shouldnt recompiling my app after do the trick? Am I missing something on the update? This whole thing is so weird..
I will keep playing with it..
Last edit: Gordon 2014-12-16
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ok, after painfully working on this.. I found a solution..
I made a very simple hello world app. I copied the Project1.Info.Plist to my app folder. In deployment, I unchecked the default Project.Info.plist.. and added the one from my app dir.. Now, using a plist editor, i removed the references to the Iphone 6 and 6 plus.
My app works great on iphone 5 compiled with xe6. When I install it on the new Iphone 6, it scales and looks great too. Zero code change..
Now, Using xe7 Update 1.. My app does NOT scale on the Iphone 6. It is the size of Iphone 5..
My question is.. 2 fold..
Can I get the scaling work again? that is the easiest solution
If not.. What do I do? look at the phone type at startup? then manually adjust every control? or do I make different screen layouts for each phone size? Ive only written phone apps since the Iphone 5 came out.. so I have no experience with diff screen sizes..
Last edit: Gordon 2014-12-10
Have you already installed this hotfix for XE7 Update 1?
http://cc.embarcadero.com/item/30070
Yes, I installed this.. Then I built my app.. I assume it recompiled all of the FMX stuff.. Nothing changed..
I think this fixes a diffent issue..
My issue is .. with xe6.. it would AUTO scale or resize when installed on an Iphone 6.. Now with xe7.. it stays the size of an Iphone 5..
Last edit: Gordon 2014-12-13
Hi Gordon:
Are you using a custom Info.plist? If so, remove it and use the default one provided by XE7. (You can add your modifications later on)
Thanks for the idea.. If I make a very very basic app, with just one view and one button.. From scratch.. Its still doesnt scale..
In Xe6, I make it for iphone 5.. scales to iphone 6 with no code changes..The button realigns, and it still in the center.. perfect scaling..
In xe7, The button is off center when using iphone 6.
I found this about using Iphone 6's .. doest this make any sense to anyone?
"To let the system know that your app supports the iPhone 6 screen sizes, include a storyboard launch screen file in your app’s bundle. At runtime, the system looks for a storyboard launch screen file. If such an file is present, the system assumes that your app supports the iPhone 6 and 6 Plus explicitly and runs it in fullscreen mode. If such an image is not present, the system reports a smaller screen size (either 320 by 480 points or 320 by 568 points) so that your app’s screen-based calculations continue to be correct. The contents are then scaled to fit the larger screen."
Last edit: Gordon 2014-12-14
This means that iOS scales an application if it is not marked as compatible with the iPhone 6.
If your application is compatible with the iPhone 6 it should provide a layout that is optimized for it. So create a layout for the iPhone 6 or use alignment and anchors.
The problem is our user base is about 75% Iphone 5.. but the new users Use Iphone 6..
With Xe6, it worked perfect with both. With both phones having 6x9 screens.. it scaled perfectly.. I just cant seem to make it work right with XE7
My app resizes automatically and adapts to any device / resolution.
I had to remove the custom Info.plist and I re-marked my app as iPhone and iPad compatible.
Here you are a screenshot in a iPhone 6 Plus.
My environment:
XE7 + Update 1 + Resize Bugfix
Well , good news and bad news.. the good news is I got my app to work right.. The bad news is Im still not sure how I did it..
At least I can say goodbye to XE6 for my app..
But when I create a new app, I still cant make it scale right..
Ive tried using the the default deployment (plist) and also making my own.. Ive gone to the form properties, then formfactor/devices and checked Ipad..
Ive tried a DPF app, and a normal Firemonkey app.. same issue..
I cant make it scale.. Im sorry to be such a pain, but this one is really making me pull my hair out.. It must be something so simple..
When you appied the resize bugfix update.. did you have to do anything special? Shouldnt recompiling my app after do the trick? Am I missing something on the update? This whole thing is so weird..
I will keep playing with it..
Last edit: Gordon 2014-12-16
Ok, after painfully working on this.. I found a solution..
I made a very simple hello world app. I copied the Project1.Info.Plist to my app folder. In deployment, I unchecked the default Project.Info.plist.. and added the one from my app dir.. Now, using a plist editor, i removed the references to the Iphone 6 and 6 plus.
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default-736h</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{414, 736}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default-Landscape-736h</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{414, 736}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>8.0</string>
<key>UILaunchImageName</key>
<string>Default-667h</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{375, 667}</string>
</dict>
Compile, and deploy. works great like it should with NO code change for Iphone 6