Restrict only Ipad 1 in appstore - ios

I need to restrict my IOS app in only IPAD 1. Other IPADs are ok. It supports IPHONE 4 and above too.
Is there a way?

As you can see here:
App-Related Resources
under the Declaring the Required Device Capabilities section, you can declare UIRequiredDeviceCapabilities in your Info.plist file. It means that you declare hardware that your app requires in order to run. The App Store uses the contents of this key to prevent users from downloading your app onto a device that cannot possibly run it.
In your case, I think you can require the front-facing-camera to exclude the iPad 1gen.
Another way is to set the development target to iOS 6.0 which is not supported on the iPad 1.

Related

Unable to get values from settings bundle in watchOS 2

I have a settings bundles that I use with my watch app. I am migrating my app to watchOS 2. Does anyone know how setting bundles are supposed to work? Does the iPhone transfer the values to a the standard user defaults or to a user defaults with a suite name for a shared app group? I can't get either to work and I can't find any documentation on how setting bundles are supposed to work with watchOS 2.
The accepted answer is wrong. You can use Shared App Groups for the Settings bundle on WatchOS 2 and access the values via NSUserDefaults. No Watch Connectivity required. It is just tricky to set up and the official documentation is missing crucial info.
Recently discovered how to do it in my question here.
The 2 important points are:
You need to enable Shared App Groups on all 3 targets (iOS app, Watchkit app, WatchKit extension)
It only works on the real device, not simulator. You might need to remove the app from both devices and reinstall to have it start working.
In Watch OS 2.0 since the Watch App extension is in the Apple Watch (not in the iOS App as in Watch 1.0) you can't transfer data through user defaults, so you should use instead WatchConnectivity.
If you have a settings bundle or a framework and you want to use it in the AW App extension and in the iOS APP, you should import it in every target of your project.

Exclude iPod when submitting an app to iTunes Connect

When I submit an application to iTunes Connect, how do I set the "Compatibility" to exclude iPod touch?
Within Xcode, my application deployment settings have a "target device family" of "iPhone/iPad", but iTunes Connect seems to include iPod touch wherever iPhone is allowed and as a result the iTunes listing for the application states: "Compatibility: Requires iOS 5.0 or later. Compatible with iPhone, iPad and iPod touch. This app is optimised for iPhone 5".
The application does run on iPod touch, but is heavily dependent on 3G and as such we would simply prefer that the iPod touch not be included in the listing.
Thanks.
As you want the app compatible for iPhones & iPads only but not iPod, I guess you have to set UIRequiredDeviceCapabilities entry (a dictionary) in info.plist file AND the magnetometer key with a value of YES, meaning, only devices that support magnetometer can use the app.
I have checked that magnetometer is supported by iPhones & iPads only not by iPods. Take a look at Device Compatibility - Apple Documnetation for your confirmation.
I have not tested this, but it should work as stated in the documentation:
The value of the UIRequiredDeviceCapabilities key is either an array or a dictionary that contains additional keys identifying features your app requires (or specifically prohibits). If you specify the value of the key using an array, the presence of a key indicates that the feature is required; the absence of a key indicates that the feature is not required and that the app can run without it. If you specify a dictionary instead, each key in the dictionary must have a Boolean value that indicates whether the feature is required or prohibited. A value of true indicates the feature is required and a value of false indicates that the feature must not be present on the device. If a given capability is optional for your app, do not include the corresponding key in the dictionary.
Table 1-1 lists the keys that you can include in the array or dictionary for the UIRequiredDeviceCapabilities key. You should include keys only for the features that your app absolutely requires. If your app can run without a specific feature, do not include the corresponding key.
Good Luck :)

Do you need to edit the info.plist file for which devices you support?

If in xcode I set the deployment targets (iOS 7+ and iPhones) Do i need to actually go in to the info.plist file and specify which devices and iOS versions?
No. Xcode is smart enough to update the Info.plist based on the choices you make on the General and Capabilities tabs.
No, normally the only distinction is iPad and/or iPhone.
You'll need to make sure you have 568h images to enable iPhone5 support (as opposed to letter boxing)
In addition, if there are specific capabilities you require (GPS, e.g.) you can use the UIRequiredDeviceCapabilities key.
For more information on plist keys available, check out the Apple Documentation

Is it possible to deploy both the iphone and ipad *.ipa to the Application Center?

I am able to build both the iphone and ipad ipa files (app.ipa and app-ipad.ipa) fine. However, when I go to deploy them to the Application Center via the native-deployer api,
the Application Center only shows one app of type "ios", where I expect two apps, one for iphone and one for ipad.
Since this is one worklight project. The application-descriptor is the same. The version number and bundle ids are exactly the same. What do I need to change to differentiate them?
I think if the bundle id is different Application Center will discern them, for sure. But worklight did not change the bundle id when I added the environment, so I left them unchanged.
The bundleId value in application-descriptor.xml for the iPad and iPhone environments is merely a placeholder. Obviously, you need to change it.
You can change it either in application-descriptor.xml, in which case it will be pre-set by the time you open the generated Xcode project in Xcode. Or you can set it when you open the project in Xcode.
The simplest way is to just set it in application-descriptor.xml...
Note that Worklight has got nothing to do with your iOS app once it is generated and you want to release it. Any and all configurations are then mostly related to Xcode settings of your application. Read more here:
Configuring Your Xcode Project for Distribution
Another thing to note is that a Worklight-based iOS app, be it the iPhone or iPad environment is configured as a Universal app by default (fit for both iPhone and iPad). Perhaps what is missing in your case is to differentiate the two.
In Xode, for each project (iPhone and iPad), look for the setting to set it as an iPhone or iPad app, rather than Universal app.
Then, try uploading to the Application Center management console again and check if you are now able to see TWO apps.

How to add specific requirements while submitting iOS app to Apple Store?

I am ready to submit my iOS application to Apple Store. But I want to add specific requirements such as "app requires iOS 4 or greater ,iphone 4 , ipod touch 4g,ipad ,camera & multitasking support". I don't know where should I set these requirements.
I set the base sdk & deployement target to 4.0.
Any help is appreciated. Thanks.
You need to add UIRequiredDeviceCapabilities key to info.plist file and set still-camera value.
Here is a table of all possible iDevice requirements.
As for target iOS version and backgrounding it's right to set deployment target at least 4.0.
If you require iOS 4, you already have multitasking support. There's no way (that I know of) for any user to disable that.
Camera is trickier though. Make it very clear in your app description that your app requires a camera. And that caveat ("you must have a camera") should keep non-camera device using people from downloading.
I got it. Brigadir is right. When you setUIRequiredDeviceCapabilities key to info.plist file & set the required values then it will automatically list the devices required. See Appendix C: Device Compatibility Matrix in itunes_connect_developer_guide.pdf.

Resources