App ONLY for iPhone - iphone

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.

Related

Change compatibility of submitted app from universal to iPhone only

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).

Application can't be found by iPod Touches?

I released my first application to the App Store. Everything went fine until some people told me that they couldn't find the app. After a little research I noticed that people with iPhones could find and download the app but people with iPod Touches could not. Does anyone know an answer to this?
I have no idea as to why this is happening, I don't know any way of excluding iPod Touches from downloading the app so I probably didn't make this happen.
If you have any device specific requirements (required capabilities) in Info.plist iTunes will automatically hide the app from devices that can't run it.
Can you post any that you have?
If it wasn't available on all devices (or app store portals) then it was most likely still in the processin for app store stage. Once that finished it became available everywhere it's available.

Prevent iPhone app to run on iPad

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

App not working on iPod but does work on iPhone

I didn't test my app on iPods before submitting to the app store.
Now I'm getting comments that the app doesn't work on iPods (doesn't even load, just crashes immediately).
The app uses the user location, but from what I understood the iPod also is able to find locations although he doesn't have a GPS.
Does anyone have an idea what might be wrong? What can cause an app to work on iPhones but not on iPods?
How can I set that iPods won't see my app on the app store?
You are probably calling methods that are not supported on the device.
If you are making a call to something that simply doesn't exist on the device it will crash.
For example, in one of my applications I use the iPhone4 LED light, if i try to call that on a device that does not have it, it crashes my app.
So i have to put a catch in, so that if the device isn't an iPhone4, it does something else.
Something else that has crossed my mind, when i tried to build for an iPod Touch for a friend, i had to set the Base SDK as 3.2, otherwise it would not install onto the device correctly, this is possibly due to his iPod not being upto date, but he told me it was.. Just a thought.
Hope this helps.

How to indicate that an iPhone app is compatible with 1st gen iPod Touch?

My app appears as "Compatible with iPhone and iPod touch (2nd generation).", I would like to make it "compatible with all iPhone and iPod touches (any generation)", do you know how to do that?
I've read the documentation on this, but it's unclear how that is done. What is the magic setting that marks an app compatible with all iPhoneOS devices?
My app (http://esmiler.com/currencypad/) does work on all devices... but it looks like the default is 2nd generation iPod Touch and above... or I changed some setting by mistake at some point. Any help on this appreciated :)
When uploading your app to iTunes Connect, you have been asked what your app is compatible with (or at least I have been). It seems like you selected 'iPhone & iPod touch (2nd gen)'. I suggest you dive into iTunes Connect and check if you can change the compatibility settings (maybe look into the iTunes Connect manual).
/edit: seems like they changed it. You now have to change your app's Info.plist and therefore upload a new binary.