So I'm working on a Cordova-based app for both iOS and Android. The iOS portion of it is meant to run only on iPhones and iPod Touches.
When I last submitted my app for reviewal, I got this rejection message from them:
2.10: iPhone Apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
Thing is, here is what my app looks like in an iPad:
I hunted around for another app that is also running on the iPad at iPhone sizes, and I found FourSquare:
As far as I can tell, they're running at the same resolution.
I did a $(window).width() and .height() call in my app, and I get 320x480, which as far as I can tell is the resolution of the original iPhone.
I found this other SO question here that addresses a similar (I think) problem: 2.10 iPhone Apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
But when I check my settings ([project target] > App Icons and Launch Images), "Launch Images Source" is set to LaunchImage, and "Launch Screen File" is blank. (my experience with native iOS settings and storyboards is limited, so I'm not sure if I'm correctly implementing the solution prescribed in the linked SO question).
I also found this other one here: Make an iPhone specific app work on iPad to meet Apple requirements
It talks about editing one's .plist file to remove all references to iPad. I found two entries in mine, 'CFBundleIcons~ipad' and 'Main nib file base name (iPad)', both of which have no values (the value column is empty). Should I remove those? I'd run them to try, but I'm slightly afraid I might explode something beyond repair (plus the time taken to try, submit for review, and wait for Apple to get back to me is infinity+5 seconds, and the project's already behind schedule as is :( ).
Related
I made an iPhone App with Xcode. The devices setting is set to "iPhone". But in iTunes Connect it is rejected because it doesn't run on the iPad.
That is weird because it is an iPhone app, but when I checked it in Xcode, I can run it with the iPad simulator,however I think that normally this is not possible with an iPhone app.
I have added pictures to make my question clearer:
So what is gone wrong and how can I fix it?
EDIT:
Picture from resolution center:
Thanks all, I Found the problem/solution:
In my info.plist there was an extra row called supported interface orientations(iPad) where the portrait mode was added.
I have no idea how this got added here but when I removed it, the problem was solved.
From the Apple iOS App Store Review Guidelines (https://developer.apple.com/app-store/review/guidelines/):
2.10 iPhone Apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
Basically, if you set an app to "Universal" it will have iPad and iPhone versions of the UI and will appear in the search results for both. If you set it to iPhone only, it will still be installable on iPads, but it doesn't appear in the search results by default. Additionally when a user does install it on an iPad it will just scale up the UI to best fit the screen. You cannot prevent your app from running on iPads.
Every app can run on the iPad no matter if it is supported or not. The option you have in Xcode is if you want to configure it to look good on the iPad using it's own storyboard. If you configure it for both iPad and iPhone your app fill get a + in the right corner of the price on the App Store and show up on iPad searches. However if you don't configure it to support iPads it'll not show up on searches of the Apple App Store, unless osmose selects iPhone only. You can easily submit your app to the App Store, without it being rejected my friend.
Hope that helps. Keep coding.
Nothing is wrong here , you can do this in debug mode for development purpose. Even you can run it on your iPad device from xCode. Don't worry about it, nothing wrong here.
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.
I find paragraph 2.10 of App store review guidelines a bit ambiguous. It says : "iPhone Apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution"
My app is deployment target is iphone and the supposed device orientation is portait
When I tested my app on ipad simulator it looks as follows:
This is just a piece of the view to give you the notion of how it actually look like - the app view does not fit the whole frame of ipad simulator.
The reason why I got my app rejected is completely different, however I don't want to waste another 8 days to see the rejection again because of some weird issue, so that's why I ask. Moreover, do you know if they stop review when they encounter a problem? Or they always undeline all the issues?
My question is: should I do something with this ipad view even if my app's target device is iphone? If yes, what do you suggest me to do?
Thanks in advance
iPad will be able to download your iPhone app and run it, but your app won't be fully compatible with it. iPad users may encounter issues such as bugs and incompatible features.
iPad users will only be able to download your app from the App Store by searching its name and filtering the search results with "iPhone Only". Therefore don't expect full visibility.
Your iPhone app will run successfully on an iPad most of the times but it will be presented with a scaled screen.
I've searched far and wide for the answer to this. i haven't been able to find an answer anywhere, so i turned to stack overflow in hopes you would be able to give me an answer. I'm about to submit my first app to the app store. do i have to make the app function on all iDevices (iPad, iPhone 4, iPhone 5, iPod touch, etc.)? or can i just submit my app for one single device and screen size and leave it at that? will they reject it?
i went through this pdf:
http://stadium.weblogsinc.com/engadget/files/app-store-guidelines.pdf
but i never found an answer to my question.
You specify what kind of device family your app will run. You can not limit your app only to (for example) iPhone 4. As far as I know right now if you specify your app running on iPhones it has to support 3.5 and 4 inches screens. So getting exactly to your question: no, you can not leave your app running fine only on one device and screen size. Except the approval process it would probably cost you very low rating on the App Store.
When you build the app, in Xcode you select the device families that the app supports. The choice is currently iPhone, iPad, or both. If you choose iPhone, you'll have to support both the 3.5" and 4" screen sizes. If you used Auto Layout, this should be easy.
so today my app was rejected in the app store because of this:
Reasons
2.10: iPhone Apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution
Considerations:- This app is an iphone-only, meaning that is the only target that I chose in the tiapp.xml.- This app was already accepted once in the appstore, this is an update.- In my code sometimes I use px for imagens and sometimes DP, but I've tried switching all to DP in this screen and had even worse results.
As far as I can see, there are no errors associated with it (that means the app does NOT crash when you run it in iPad simulator) therefore I'm assuming they rejected it because of a layout problem.
Since this is an iphone-only app, iPad should run the app in compatibility mode, meaning that it might scale it up, but respecting the original sizes.
This is a pic of the app running in a retina simulator (with no problems):
And here's a picture of the app running in a retina iPad simulator (though the result is the same in a non-retina):
As you can see, everything's huge and I have no clue why. I'm running ios7.1, Titanium SDK version 3.3.0.GA and it's a alloy app.
Any help is very much appreciated, thanks.
The point 2.10 reference any resources of app. So, if you have not resources, for example, screenshot before load application, your app will be reject. The iPhone apps should have iPad resources, but iPad apps may be independent.
My problem was not the iPad resources or splash screens. Actually, I was using PIXELS instead of DP in many places in my application. This was not a problem for none of the iPhone versions, but was a problem when iPad tried to run the iPhone-only app in compatibility mode. In any case, now there's also the iPhone 6 with different resolutions so one should never use pixels.