iPad compatibility mode uses (unsupported) small iPhone size - ios

My iPhone app's Deployment Target is iOS 10 (thus, it's for iPhone 5 and later). I haven't bothered making my many views fit on the small 3.5" iPhone 4 screen size because it will never be used on that small screen (due to the Deployment target being iOS 10). However, when my app runs on an 9.7" iPad, compatibility mode defaults to the 3.5" screen size, not 4 inch. I expected the iPad to respect the implication of my Deployment Target setting. I believe iPhone apps running on 12.9" iPad are shown using iPhone 5 size -- that's what I want.
I'm using Xcode 9. My iPad is running iOS 11.4. I'm not using Auto Layout (it's an old app with numerous views -- it used to run on the older iPhones, but I ripped out that code).
How can I get the iPad to respect my Deployment Target setting and use a 4" screen?

Related

Must app be tested for all iphone sizes for approval

am newbie in iOS app development.
say, I have created an iOS Swift 3.0 App for iphone 6/6+ (7/7+)
I build Swift app for iphone 6/6+ (same as 7/7+). This means I use the standard Screen size 375x667 to start with.
In Xcode 8.2.1, there is a list of Devices from iPad to iphone 4s which you can use to test to see how your app fit into the targeted devices.
1) I started on iphone 6 (same as iphone 7), my app fit in and look good for this screen size. When I tested it on iphone 4, my App wont fit in; some UI control like TextView is missing. Must I fit my app for this iphone 4s?
2) The same app can fit in ipad (pro 9.7, 12.9 inch) but the UI control will look small.
I need your help for the following questions for app store submission.
a) It is a must that my app must fit in for all the screen size such as ipad and iphone 4s when I started out the app on iphone 6 or 7?
b) Can I just target iphone 6 and above?
Thanks
There is no explicit setting to target only the iPhone6 and above, rather Apple will frown over this and would not encourage it.
But by doing the following, you can target only iPhone5 and above.
In the Project --> Target --> General --> Set the targeted devices only to iPhone instead of iPad/Universal.
Again in, Project --> Target --> General --> Set the deployment target to iOS 10.0.
As iOS 10 does not support iPhone 4s and previous devices you can get away with this.
Also, iOS 10 adoption is already about 80% as reported on Jan 4th, 2017. So you are already targeting most of the users.

App on appstore has iPad support when iPhone family set?

I have an app on the App Store and I've made sure several times that iPhone is selected in: App > Target > General > Deployment Info > Devices > iPhone
..rather than Universal or iPad.
It appears every time the app is approved it still says iPad supported, how can I disable iPad support completely since the above "solution" doesn't work?
That is normal, iPhone applications can also run on iPad in a iPhone simulator mode.
This is the description of one application of mine only available for iPhone.
Compatibility: Requires iOS 7.0 or later. Compatible with iPhone,
iPad, and iPod touch. This app is optimized for iPhone 5.
This one just for iPad:
Compatibility: Requires iOS 7.0 or later. Compatible with iPad.
and this Universal (both iphone and ipad, no simulator)
Compatibility: Requires iOS 7.0 or later. Compatible with iPhone,
iPad, and iPod touch. This app is optimized for iPhone 5.
It seems the same, but in the reality there is also a + sign with written:
This app is designed for both iPhone and iPad
Making them "Just for iPhone" doesn't let iPads not use them. Imagine this bit of a crisis: on the first iPad's release, how did apps get on the store, since they were designed for iPhone? Developers had some options:
Make an "HD" or "iPad" version. This involved redoing the entire UI so it would fit on the bigger screen.
Do nothing. The iPad's would get the iPhone version of the app, but they would just be, as you can guess, oversized iPhone apps.
After a couple years, there was another option:
Make a "universal" app. This allowed both UI's, both big and small, retina and 1x scale devices, to be "bundled" together in the same Bundle. (heh, bundle pun.) Puns aside, this allowed for apps like "Facebook" to run on iPad, iPhone 3GS, iPhone 4, iPhone 5, iPhone 6, the future iPhone cheeseburger double-decker 7+, and everything else, without having to remake the entire app.
On the iPad, as mentioned by Andrea, it runs in an "iPhone Simulator" mode. This makes the tiny screen be rendered in the tiny screen scale, and, since iPad is over twice the size of the iPhone, it gave the iPad a "2x" button to zoom it in and make the UI bigger.
It's like an app designed for iPhone 4 running on an iPhone 6 Plus.
The iPhone 4 renders stuff at 960x720 landscape or 720x960 portrait, and iPhone 6 Plus's display is much bigger. To accommodate, it letterboxes the content and scales it up automatically.

How to make my app use a zoomed iPhone 6 resolution when using an iPhone 6+

I'm making my app work on the new iPhones 6/6+. Until now everything worked in zoomed compatibility mode, but I wanted to make some modifications for iPhone 6. Instead of migrating all my assets to #x3, I prefer that my iPhone 6+ version will still be in compatibility mode - but instead of using the old iPhone 5 version, it should use the new iPhone 6 version.
I inserted a splash scree image to iPhone 6, but can't get the iPhone 6+ to run in compatibility mode now:
Leaving it blank does not show a splash screen at all, and the iPhone 6+ still uses its own resolution.
Putting the iPhone 6 splash in the iPhone 6+ splash slot, also doesn't show a splash screen, and the iPhone 6+ still uses it own resolution as well.
Is it even possible?

Default device orientation in Xcode 6

I've set up a new single view project in Xcode 6 for universal devices. This app is to run only in landscape mode on iPhones (even 6 and 6+) and any orientation on iPads.
In Xcode 5, you could specify in Deployment Info what device orientation can be used for iPhones and iPads. But in Xcode 6, it seems to have only one choice for all devices. This must be for the adaptive simplification process, I guess...
But, anyway, how can I specify these available orientations?
Check the below screen shot you have option in xcode6.

Is there an iPhone 5 simulator?

My hard drive crashed, and I had to re-install all the development software.
It seems like when I create a new project, it is targeted for the iPhone 5 (The UI editor has a taller screen in the layout) but the simulator is an iPhone 4 (the screen is not as long) All so When I layout the UI in Xcode, the simulator sometimes draws things at different vertical positions.
Is there a way to get a simulator for iPhone 5?
Can you create a project that has it so the UI editor is targeted for the older iPhone, iPhone 4?
You can select either of the simulators you want for your project:
iPhone Retina (3.5-inch) is for iPhone 4 or iPhone 4S and iPhone Retina (4-inch) is for iPhone 5.

Resources