My app that I submitted yesterday to the App Store had to be compatible only for iPhones because that is how I already set it to like this.
Now I saw that on iTunes on my app it says that is compatible with iPhone, iPad and iPod and it really should be only iPhone.
I tried to solve the problem with adding the element telephony to the array Required device capabilities in info.plist like this.
Will that make in iTunes to say Compatible with iPhone only and not allow installs on iPads and iPods ? If not how can I solve the problem ?
Yes, that should do it according to this other stack overflow post:
How to Restrict the iOS app only for iPhone excluding iPad?
Essentially there's no way to restrict apps by device unless the device doesn't have a feature you need, in this case, the ability to make calls (telephony).
Related
I noticed that WhatsApp Messenger [1] isn't available for iPad anymore.
Apple states that "iPad runs nearly all applications, or apps, designed for iPhone and iPod Touch" [2]
Now, I must have missed a memo since I knew that any iPhone App could be downloaded on iPad too.
So we finally get to my question: How to hide an iPhone App from the iPad's AppStore?
Thanks.
[1] https://itunes.apple.com/it/app/whatsapp-messenger/id310633997?mt=8
[2] http://support.apple.com/kb/ht4082
As far as I know, WhatsApp has never been available for download on the iPad. This is because they listed telephony as one of the Required Device Capabilities in their info.plist.
That's the only way that you can get an iPhone app not to install on an iPad. Apple doesn't provide any other way as they want all (most) of the iPhone apps to be compatible on iPads (if the app is not universal it'll just run in the iPhone scaled mode).
Please note that if you require telephony to achieve this, but that's not an actual requirement for your app, it will most likely be rejected on the App review process as Apple don't allow artificial hardware requirements used for limiting device types.
My app has been rejected 2 times because its only a iPhone app, the second time i uploaded it i was pretty sure i had changed the build settings to iPhone only, but i guess not. On Targeted Device Family: I have iPhone, i guess that makes it iPhone/iPod Touch.
What if i want my app to work only on the iPhone, thats it. Apple called me on the phone, told me about the problem, and then i reuploaded it, i guess i didnt really fix the problem. can someone help me? Thanks, Jacob
Do you mean iPhone only application or iOS application which doesn't include iPad? Apple wouldn't reject an app if it was released on iPod Touch as well as iPhone (and I've seen examples where functionality doesn't even work on the iPod Touch but it was allowed through anyway).
I suspect that you have built the app for iPad at some point and then removed it, but not removed it properly? This would then create an iPad version which would do nothing when loading and that could be the rejection reason.
What exactly did Apple send you in their response email, they are usually very good with a reason for rejection.
Take a look at page 90 in the iOS Application Programming Guide provided by Apple on developer.apple.com
You can set a UIRequiredDeviceCapabilities key in your Info.plist file for telephony (I don't see one for vibration).
Since the iPod Touch doesn't have telephony capabilities this should restrict the app to iPhone only.
To me, it sounds like you have have an app that relies on vibration and are supporting both the iPhone and iPod touch, which doesn't support vibration. You need to disable support for the iPod touch, and then Apple will accept your app.
I'm shipping two binaries; one for iPhone/iTouch and the other for iPad. It's the same application.
Will Apple ensure that the user will never receive an iPhone version of the app on the iPad? If YES, then I don't have anything to worry about, but if not then I do have a problem.
The reason I ask is the iPhone application will simply not work correctly on the iPad because the server knows it's an iPad and will deliver the iPad HD content to it and the iPhone cannot handle that. I would rather not hack my application to send the server a fake device type if running the iPhone app on the iPad in order to receive the correct resources.
Suggestions?
I've been looking for this for a while because I couldn't prevent the iPhone app to load on the iPad. Searched a bit to understand why this was happening, followed #hotpaw2 instructions and found this on the official apple store rules:
UPDATE:
2.4.1 To ensure people get the most out of your app, iPhone apps should run on iPad whenever possible. We encourage you to consider
building universal apps so customers can use them on all of their
devices. Learn more about Universal apps.
https://developer.apple.com/app-store/review/guidelines/
The SDK and/or App store rules prohibit you from preventing an iPhone app from running on an iPad in 1X or 2X zoom mode, unless there are other requirements listed in the app plist. Apple's app review is known to test iPhone-only app submissions (unless there are other requirements) on an iPad, and reject the app if it doesn't run properly.
Other requirements (as listed under UIRequiredDeviceCapabilities in the app's plist) might include your app requiring telephone capabilities (or healthkit, etc.), which might help you temporarily, but still won't prevent the app from running on some hypothetical future iPad product that includes telephony capabilities (and/or healthkit, etc.).
Actually you can.
Add telephony to UIRequiredDeviceCapabilities in your plist file.
But i really not recommend it and maybe you could get rejected because of gratuitously using this property.
I think you should handle that there are iPad versions and iPhone versions on iPads, use the second one as an iPhone.
Also don't forget that retina iPads will use upscaled applications at retina resolution while none retina ones use the standard resolution. And this behavior can tweaked using jailbreak tweaks like RetinaPad and FullForce.
In the plist settings, add Application requires iPhone environment and set the boolean to YES
My iphone app doesn't run well on the iPhone 3G. Can I make it so users with these models can't download the app? If so, what does a 3G user see when they search for my app in the app store?
Does it appear in the store at all for them? If it does, when are they notified that they can't download the app?
I recommend you use the UIRequiredDeviceCapabilities key in your info.plist. This lets you tell the App Store exactly which capabilities you require instead of which device you require.
If your app "doesn't run well" on a 3G I'll guess it is because of performance and therefore you'd want to require a newer processor. Look into setting arm7 as one of your required device capabilities.
For more info look here:
http://developer.apple.com/iphone/library/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW3
Make it run better. Or if it's not completely unusable, just let them use it anyway. People with old devices expect them to be a bit slow.
According to the iTunes Connect Developer Guide (which links to the iOS Application Programming Guide), you can't prohibit certain devices. You can, however, require certain features which are only present on new devices:
armv7 is what I'd recommend (older devices are armv6)
magnetometer, because older devices don't have one. Apple might look at you funny if your app doesn't actually use the compass though.
opengles-2, because older devices only support 1.1. Apple might look at you funny too.
auto-focus-camera, except the iPad and all the iPod Touches don't have one. Probably not what you want.
iPhone 3GS uses iOS 6.1.x so if your app support iOS 7+ it will not be able to install on iPhone 3GS, this is the best possible way to avoid download on that device.
I am on the edge of submitting my first iPhone Application.
So, now I have little confusion in the submitting process..
My application is only for iPhone and ipod touch users only, not for the ipad (yet). So, i don't know where I need to specify this option while submitting app to the apple. If anybody can help me then it would be greatly appreciated.
Thanks in advance...
EDIT: While submitting app to the app store I got one radio button option which is asking like "
Do you want to limit your app to only run on devices with specific capabilities?" Yes | No. (this question can be found just below the description field)
I don't know what to select and why..
It doesn't matter if your app isn't an "iPad app". If you submit it, it'll be submitted as an iPhone/iPod Touch app.
The iPad will be able to run it using it's scaling mode, and there's no way you can prevent this.
Unless you create your app to be universal for iPhone and iPad, this is how it will work.
If you are using features that are specific to updates like iPhone OS 3.0 then you would want to limit it to anything after that build. Otherwise users of say, the iPod Touch, who haven't upgraded would not be able to use all the features. If your app doesn't have any device or software specific capabilities then you can just check "NO".