I have just uploaded my first app to iTunes Connect and noticed that my list of supported devices is appearing as follows...
Device Requirements: Compatible with iPhone, iPod touch, and iPad.
I've developed specifically for the iPhone and iPod Touch and have not yet done any testing on the iPad simulator. I therefore don't want the app submission testers to try running my app on an iPad and rejecting it because of some minor issue.
I've looked at setting the required device capabilities in my info.plist, but that doesn't appear to allow me to restrict at a device level.
Is this a by-product of building using the 3.1.3 SDK? Are apps built using this SDK automatically upscaled to work on the iPad?
You can't restrict the app to not work on the iPad. Backwards compatibility with all iPhone apps is a feature of the iPad. Your app will run in a 100% frame or in an optional 2x mode depending on user preference.
iPhone OS apps that link against the 2.x or 3.x framework and test clean on the iPhone and iPod touch should work w/o any trouble on the iPad.
If you tested on the iPod, taking into account the lack of cell radio, camera, etc., you should be totally fine.
I don't see a good reason to exclude iPad since iPhone apps will run in emulated mode in iPad after all. It's the same situation as a 3.x firmware running apps compiled from 2.x SDK.
To restrict at device level, you add the UIDeviceFamily key, but this doesn't support excluding iPad (just excluding iPhone).
The way to indicate that an application should only run on iPhone is to specify your application as an iPhone type application, rather than universal. Open your project (in XCode), click on the project name at the top of the Project Navigator sidebar, select the target, go to the summary tab, and change "Devices" to iPhone.
When you submit it, it will only be run in emulator mode on iPads, thus getting around any issues.
Related
I am developing one application for iPad and iPhone. The problem is that I only have one iPad. I need to develop in a physical device cause I have some libraries inside the project that only works in device.
Are there any way to deploy in my iPad as an iPhone to check if the application code is working fine?
I have a jailbroken device.
Thanks!!
In Xcode select your target and then the Summary tab. Change the Devices value from Universal to iPhone. Now build and run your app on your iPad. It will run in iPhone compatibility mode on the iPad.
Don't forget to put that option back to Universal before shipping the app to Apple.
One limitation is you can't test to see if your app works on the 4" devices. The iPhone compatibility mode only works in 3.5" mode.
I've had an iPhone product on iTunes for a while and have superseded it with a universal app which has been met with approval except from one customer who wants to run the iPhone version on his iPad as he preferred the larger inputs and working of the iPhone.
Is there any way to configure the app to run either as native iPad app or iPhone app on iPad at runtime? Seems an odd request but customer is quite insistant.
Thanks
/Fitto.
No way to do that, except making separates versions for iPhone and iPad.
Theoretically, you could have some setting that would load the iPhone storyboard on the iPad, but it would still display full screen, and not in compatibility mode, which is probably the way this particular user wants it
Assuming you are running some sort of source control, you could change the project to be "iPhone Only" and then test on the iPad, then later revert the changes made to make it a Universal app again
I created a iPhone application first and converted it to iPad version to make it a universal build. Most of the time it works fine. But sometimes my iPhone version load as iPad and iPad version launches as iPhone. Kind of mixed up. What is the cause for this? Will this be an issue in actual devices once I submit that to the app store?
Thank you
In Xcode you can select the active executable (use the drop-down in the upper-left corner). I find that sometimes it switches on me, perhaps showing iPad and requiring me to set it back to the iPhone executable for example. If this is your issue, there will not be any confusion when you're running it on an actual device.
If you are planning to submit an app to the app store, it's a very good idea (understatement) to test the app on real devices first!
I want to set the iPhone the only device family available to install my app in XCODE (actually at the AppStore) but - at the AppStore - it says that it can be installed on iPhone and iPad devices;
The App is not optimized to run on a iPad :/ I'm using Phonegap in this project btw.
Note: I do have - under project settings: "Target Device Family : iPhone"
Any ideas how to fix (set) this?
You cannot prevent an iPhone application from running on an iPad. It just cannot be done at the moment, there are no special flags for it AFAIK. Most users won't be confused anyway, as iPad (specific or universal) apps are clearly marked as such on the App Store, and are easily distinguished from apps designed only for iPhone.
I have an iPhone app that I have started to turn into a universal app, however the process is not complete and I want to release an update to the iPhone version.
I know that you can specify device capabilities in the Info.plist file to restrict your app to certain devices, but how can I do this to prevent the unfinished universal version from appearing in the iPad store?
Is checking the LSRequiresiPhoneOS BOOL entry (in the Info.plist file) enough?
Thanks!
I'd consider restriction to iPhone very bad decision - the iPad is designed to run all iPhone apps in compatibilty mode (except for obvious things like telephony). So you will run into severe complaints.
If it is about the half-done enhancements for the iPad part, then just turn those features off and compile for iPhone (targeted device: only iPhone; maybe tweak the plist file, too).
You could use the UIRequiredDeviceCapabilities and specify that you require "telephony" in your info.plist. That would keep it off the iPad (and iPod touch too). See Device Support.
I found a setting under Project Settings -> Build that titled "Targeted Device Family." Maybe try setting this to just iPhone, not iPhone/iPad -- I think that should also help.