Set App to run on iPhone 5+ - ios

Really simple question but can't find a answer anywhere. How do I set it so my app (iOS App Store) can only be downloaded by iPhone 5+? e.g iPhone 5, iPhone 5s, iPhone 6 and iPhone 6 Plus only. No iPhone 4s or lower.

There is no option for that. There is only option where you can set minimum iOS version.
You can set minimum iOS version from Deployment Target option.

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.

iPhone 7 and 7 Plus compatibility and showing compatibility in the app store

For iPhone 6, 6 Plus, we had to add LaunchScreen, splash image and few changes in settings that would show the app is compatible for iPhone 6 and 6 plus.
How the app will know device for new device ? Is it only with LaunchScreen ?
Does there any rules which will show iPhone 7, 7 plus compatibility in app store for this new device ?
For iPhone 6, 6 Plus, we had to add LaunchScreen, splash image and few changes in settings that would show the app is compatible for iPhone 6 and 6 plus.
This was only necessary because the iPhone 6 and 6+ had different screen resolutions than any previous iPhones. (The same thing also happened when the iPhone 5 came out.)
The iPhone 7 / 7+ have the same screen resolution as the iPhone 6 / 6+, so no changes to applications are needed.
Once your app has support for iOS 10 (and in your situation model: it was also previously compatible for iPhone 6 / 6S / Plus), yes, it is set to be compatible for iPhone 7 / 7 Plus.
The minimum iOS supported on the iPhone 7 is iOS version 10, that's way you have to support it in your project to be reachable by iPhone 7.

How to take Iphone 4 screenshots with Xcode 8

This SO post gives the image resolutions needed for the Xcode Images.xcassettes when doing the launch image for the Iphone. One of the images needed is the 2x for the Iphone 4. However, since upgrading to Xcode 8, the target builds are only Iphone 5 and above. How do I get a screenshot from the Iphone 4?
Xcode -> Preferences -> Components
Install older version of simulator and iPhone 4S will appear in simulator list.
4 and 4S had identical screen resolutions.
P.S. You also need to set project deployment target to the older version you installed
Don't Take.
In XCode 8.0, You are set deployment target 8.0+, it means in You are developing apps for iOS 8.0 and later. iOS 8 and later will be compatible with iPhone 4s, iPhone 5, iPhone 5c, iPhone 5s, iPod touch 5th generation, iPad 2, iPad with Retina display, iPad Air, iPad mini, and iPad mini with Retina display. So it looks like the iPhone 4 is officially dead to Apple.
You are take iPhone 4S screen shot. if You are set the deployment target 8.0.

how to enable iPhone6+ screen resolution in Xcode 5

I am using Xcode 5 (iOS7) and now I want to develop an app, which should be compatible with all iPhone devices. Now using Xcode 5 and in Xcode 5 there is no resolution option for iPhone 6 and iPhone 6+. How to enable these resolutions in Xcode 5?
1) Can I upgrade my Xcode 5 to 6?
2) Can I upgrade my mac from 10.9 to something?
3) How to upgrade splash screen for iPhone 6+?
4) Is it possible that I used Xcode 5 for both iPhone 5 and iPhone 6?
Thanks in advance!
You need to use Xcode 6 to support iOS 8 APIs and to support native resolutions on the iPhone 6 and 6+.
Xcode 5 can't be used to support iOS 8 APIs nor native resolutions on the new iPhones.
1) Yes, install Xcode 6
2) Maybe. It depends on your Mac. But Xcode 6 works just fine on OS X 10.9.
3) Add iPhone 6 and 6+ launch images or use the new launch screen file.
(again: only works when you use the ios8 API in xcode6)
4) Sort of. Xcode 5 can be used with iOS 8 devices but only after the device has been used at least once with Xcode 6. And Xcode 5 can use the iPhone 6/6+ but not at their native resolutions. You need Xcode 6 for that.
rmaddy answered this nicely, just adding additional information here:
You will have to upgrade sooner or later, so better to do it early. In addition you can keep Xcode 5 installed alongside Xcode 6.
Both Xcode 5 and 6 work on Mavericks (10.9) and Yosemite (10.10). If your Mac hardware supports the upgrade, you should upgrade, but it really depends on your personal preferences. It is not necessary for iOS 8.
Add appropriate resolution launch images for iPhone 6 (750 x 1334 - #2x) and iPhone 6+ (1242 x 2208 - #3x) or use mentioned launch screen XIB. Detailed description in document: https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/LaunchImages.html
You can run iOS 7 apps on iPhone 6 and 6+ in Xcode 5, but as previously mentioned, if the device has iOS 8 installed, Xcode 5 will not detect it unless Xcode 6 has already detected it. This means that you will not be able to run apps on iPhone 6 and 6+, without opening Xcode 6 at least once to process the device (there is no iPhone 6 with iOS7). This goes the same for iPhone 5(s/c) if they have iOS 8 installed.

Image Assets catalog doesnt recognise retina 4 photos in xCode5

For start what I am trying to do i am not even sure that is possible(looks that is)
In the feature of image assets in Xcode you can select for an imageSet to be either Universal or Device Specific. When I am doing it Device Specific and select both iphone and Retina 4 and assign pics to all , it is always selected the iphone retina image and never the Retina 4 when I am using an iphone 5(device or simulator)
Have searched docs but couldnt find something.
Thanks
The "R4" image will only work on 4-inch iPhone running iOS 7 or later.
On older version of iOS it will use 2x image.
Example. If you use images like this:
you will see:
iPhone 5 iOS >= 7 - number 3,
iPhone 5 iOS < 7 - number 2,
iPhone 4, 4S - number 2,
iPhone 3GS - number 1,
iPhone 5C and 5S - number 3.
In my experience, this is the case whenever you do not target specifically iOS 7.0 in your Deployment Target as part of your Project/Workspace settings.
Targeting anything other than 7.0 seems to result in this behavior.
To clarify: this value essentially specifies the minimum version of iOS that is allowed to run your app. Specifying iOS 7.0 in this field will restrict use of your app/update to ONLY users with iOS 7.0.

Resources