XCode 4.5.2 why can I run apps built for iPhone on an iPad? - iphone

I've recently upgraded to xCode 4.5.2 and attempted to resubmit an app to the app store. The apple minion has run my app on an iPad and it does not work. So the app got rejected.
I tried it again and again, and the only way I can make it fail is if I run it on an iPad. My question is: Why can I run the app that is intended for an iPhone on an iPad if I use xCode?
There's not storyboard file for iPad
The targetted device family is iPhone
There isn't even an icon file for iPad, so it just shows trimmed
launch image on the iPad's home screen
I cannot see the app that I published if I search for it on the app
store if I use iPad
The bug that I'm running into involves treading and core data. Is my data model compiled for iPhone only, and not for iPad?

Related

Submit IOS App to App Store rejected because of iPad crash / SwiftUI

Im trying to submit an app to the App Store that I originally planned on only supporting with the Iphone. However, I found out that Apple requires apps to be run on iPad as well. I have clicked iPad in the general deployment info but is it possible for the iPad app to be just a mini version of what is seen on the iPhone. When I run the current code on an iPad simulator, it fills up the full screen and treats it like any other device. I don't want it to do that and just have an iPhone 1x/2x zoom size frame which I've seen other iPhone primary apps do. Is this possible in SwiftUI? Thanks for all your help.
I've also unchecked requires full screen on the App Store.
Simply do not check iPad in general deployment and your app should run as an iPhone app with the x1/x1 zoom option.

How do I get an iPhone app that works really well as is on the iPad listed for iPad on the iTunes store?

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
My app works perfectly when set up for iPhone on both iPhone and iPad. If I set the app to universal or iPad as is, it has problems. Is there a way to get it listed as an iPad app as is? Or do I have to make up a separate iPad version?
If you want to use the app for ipad, you need to make your app Universal. As you said if you set it for only iphone it works properly in both ipad and iphone but you will be seeing your iphone app in your ipad, its not an ipad app. The only issue you will be facing is, when you launch your app with only iphone version it will be only available in iphone appstore. If you try to search in ipad appstore you will not be able to see your app,unless you change the option to iphone only(after searching in appstore you will be seeing ipad only or iphone only options on top left corner of appstore).
So if you want your app to be listed in ipad appstore then you need
to make it Universal there is no other option and you need make your
app compatible with ipad.
Let me know if you have any doubts.

Deploy in an iPad as iPhone

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.

Run a universal app as a 'legacy' iPhone app on an iPad

I do most development testing on my iPad. When I test an iPhone app, it runs in 'compatibility' mode where the little iPhone app runs in a small window or x2 magnification. Now that I've created a universal app it runs as a native iPad app. For testing I'd like to use the simulated iPhone when I don't have an iPhone handy for testing.
How can I build the project so that the iPad will run the app in compatibility mode?
Turns out it was really simple
Get Info for the project target
Change Targeted Device Family to iPhone
You can't. If the target is 3.2 SDK, then it will always run the simulator as an iPad. So your options are to debug on a device, or configure your app to be build under 3.1.3 so that the simulator will be an iPhone (too much trouble and unreliable).
Or hope for a later release with the option.

iTunes Connect: Excluding iPad From Supported Devices

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.