I uploaded my binary to the app store and in the project portion of the Xcode project it is set to "Devices iPhone". However in the app store it says:
Compatible with iPhone, iPad, and iPod touch.
Why is my app available on iPad? I haven't designed this app for iPad and I don't want it to be available on iPad. What is the deal? How do I fix this?
It is not possible to tell Apple that an app is only for iPhone. All iPhone apps work on iPads.
What's more, if you make your app support iPad and iPhone specifically by changing the assets used based on the device, you can't tell which device it is being bought on.
For that information, you would have to make a seperate iPad-only app. But even then, people can buy the iPhone version for their iPad if they want.
Apps listed as only for iPhone run in a window which has the aspect ratio of an iPhone. The user can choose to run them at 2x magnification if they want it to take up more of the screen.
iPad runs nearly all applications, or apps, designed for iPhone and iPod touch available in the App Store. The App Store also features many applications designed specifically for iPad.
Here are some things to remember when using apps designed for iPhone and iPod touch on your iPad:
Apps may only work in portrait or landscape orientation. These apps will change orientation even with screen rotation lock on.
Apps can run in their original size or expand to fill the screen. Tap the 1x or 2x icon in the bottom right of the screen to switch between sizes.
Text and graphics may not appear as sharp when using 2x mode. If you prefer sharper text and graphics, use 1x instead.
Some features may not be available on iPad (for example, apps that let you make phone calls or use the iPhone camera to take pictures).
More details: Support-Apple:iPad: Using applications designed for iPhone and iPod touch
Related
I know that there are several answers for this question, but I was not clear about the result. Here are a few questions:
1) If I created a project as an iPhone project, selecting device as iPhone in deployment info, and designed the app using universal storyboard (i.e any width and any height (600x600) ). Once the design is completed and it is run on an iPad, the UI does not look good. If that is the case then, what's the point in selecting the device as an iPhone? Am I right that when selecting the device as iPhone or iPad, Xcode will allow the app to only run on those devices?
2) Now converting iPhone app to universal app: since image resolution varies from iPhone to universal app, do we have to replace all old images with new images supporting the universal app?
3) If I have an iPhone app, the Apple team will test it, both on an iPhone as well as on an iPad. If they found the UI doesnt match the iPad, will they reject the app?
I would imagine the UI looks just like it does on the iPhone, just enlarged to fit on the iPad. Basically this is because iPhone only apps can be run on iPads, but not vice versa. If you change the app to a Universal app, it will try to run natively on the iPad, and may look better if you have appropriately used auto-layout and size classes.
(Optional other cause) The other option is you're running into an iOS 8 issue where if you use an storyborad or nib for the launch file, it will mistakenly make an iPhone only app work as a Universal one. The use of Launch Screen File in iOS 8.0, 8.0.1 and 8.0.2 will make you universal.
This is a know bug and fixed in iOS 8.1, for you only option is to use assets catalog with a launch images.
Or you can add the device modifier in the Launch file name, like <launchNib>~iphone.nib
As far as images go, you will want to make sure you have images for the different resolutions (#1x, #2x, #3x). If you haven't already, I recommend reading up on asset catalogs (http://schlu.org/2013/10/01/Xcode-Asset-Catalogs.html). Images are not inherently different between iPhone and iPad (except for launch images), but it's the pixel density that really matters (older devices are 1x, most retina devices are #2x, and the 6 Plus is #3x).
If it is truly just an iPhone app, Apple will not reject the app because it looks pixelated and ugly on an iPad. The ability to run iPhone only apps on iPads stems from the initial release of the iPad when people hadn't created iPad or Universal apps yet. Apple basically provides it if someone REALLY wants an app that hasn't been created to specifically support the iPad yet.
That said, I would just go ahead and release it as a universal app. If you don't have revenue reasons for creating separate apps, I wouldn't recommend the extra hassle of having two apps. If course, if your app doesn't make sense on the iPad, simply make it iPhone only.
These are the common practices according to your questions
User interface doesn't depend on deployment devices. User interface depends on your implemented UI logic. As you said, default storyboard size is 600x600 (this could be easily changed), but this doesn't mean, that all devices should be this resolution. When the resolution is different, images and UI elements are misplaced. There are several ways to implement UI logic and make UI flexible, but I guess your question is not about that. So, short answer - devices selections are more about deployment than UI.
It might be some different images for different devices, but images such as buttons or text fields or etc should be flexible.
No, Apple doesn't care about your application appearance and design.
I hope I have answered to your questions.
As of know my app's compatibility status in AppStore is
"Compatible with iPhone, iPad, and iPod touch. This app is optimized for iPhone 5."
I want to make it compatible with iPhone 6 & 6+. So, i provided all the requirements for making my iOS app to compatible with iPhone 6 & 6+.
My question is:
I want to know my apps compatibility status before sending to AppStore Review process. So, is it possible using Xcode ?
first, you can run it in iPhone 6 Plus simulator, if the state bar is very fine, not to become big, then your app is optimized for iPhone 6+.
if your app doesn't optimize for iPhone 6, the screen you see is very terrible, just like small screen was dragged to 2x, like mosaic.
if you have friend who have iPhone 6 Plus, you can run it on the device.
for my app, I just delete the launch screen, and add a new one, then Xcode want me to add the launch image of iPhone 6 size, I did this, and run it on simulator, I found the screen didn't mosaic, the control recover the original size, not mosaic, what's more, it become chaos, because the size become small, screen have some blank areas.
then I use auto layout, restrain the control, make them fill all screen, now finish
my english is not very good, you can ask me if you don't understand it
I don't want my iOS app to run on iPhone with 3.5 screens, is it possible to restrict my app only to 4 inch displays or larger?
Also, is it possible not allow the app to run on a certain device? I do not want my app to run on iPhone 4 and 4S.
Rather than selecting for a specific device you should focus on what capabilities you need.
For example Bluetooth 4.0 Low Energy communications supported only in iPhone 4S+ devices . You can add the bluetooth-le key to your UIRequiredDeviceCapabilities to prevent installation on every device but the iPhone 4S+ devices.
I don't think this is a good idea. Apple wants you to develop for as many devices as possible, and if you decide not to support a certain device for no reason (e.g. "no M7 coprocessor" for all devices except the 5S), Apple will reject your app.
You cannot choose an app to only be released for 4" devices, and you have no influence on what display the iPad simulates when it runs an iPhone only app. What you want is simply impossible. This answer was found here: Limit app to running only on 4 inch devices IOS and answer credit goes to #Scott Berrevoets
NO.
You can't make an iPhone app restricted to a certain screen size. Not only is it not technically possible, it's against Apple's App Store Review Guidelines, in ways.
2.10: iPhone apps must run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
Although it's an old guideline mentioning the iPhone 3GS, the gist is the same even now: the app MUST be able to run on any screen size. There are even resizable iPhone and iPad Simulators within Xcode that you may use to take guesses on the next iPhone's screen size.
If they made guidelines so that apps can be used on the iPhone 3GS and the 4 and the 4s, said apps should also be able to run on newer phones and whatever's currently supported with the OS.
You said you noticed performance issues on older devices in a comment. This is where you need to work. How would you go about fixing said performance issues on older devices? Do what Apple did with iOS 7's release:
Reduce graphical effects and unnessicary processor-heavy effects on older devices.
If you look between devices, iPhone 4 has none of the translucency and background blurring that was advertised with iOS 7, namely with Control Center, Notification Center, Alerts, Keyboards, and Navigation Bars. This is how Apple tried to compensate with the lag of the iPhone 4 trying to run iOS 7. Same goes with the iPad 2. The iPod touch 4th generation didn't have enough RAM to run iOS 7, so it's stuck on iOS 6.1.5.
You need to do some work here too. If you have unnessicary graphical and processor-intense effects in your app that causes lag and performance issues, disable them on devices that can't run them at a smooth frame rate.
Apple rejected my app for the reason 2.10: iPhone apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
Information Needed
Here is my launch image
Here is apple's reply:
My code is at github: https://github.com/imWildCat/V2EX-iOS
How can I solve the problem?
I don't think it is about your app icons / launch image.
What I suggest is that you Build and run on your iPad simulator and see how your app is rendering / behaving.
A valid result is a perfect representation / functionality of your app on an iPad (with some black boarders that will be there automatically since the screen proportions are not time same between iPhone and iPad)
it seems to me that your reviewer was testing your app on an iPad and something was just not working (visually) - most likely some user input screens
I would also make sure all the meta-data on i-connect is valid.
My game was rejected, because it crashes in iPad, but I don't want the game to support iPad. I did not even upload any screen-shoot to iTunes Connect. How can I do this?
You can't. All apps will be able to run on iPads, even those set to iPhone-only. They just won't use the full screen size / pixel density.
iPhone-only apps run in the 1x/2x compatibility modes on iPad where content is optionally scaled up.
You should try to confirm the crash on iPad simulator or (better) an actual iPad device.